{"id":4941,"date":"2017-12-13T00:53:31","date_gmt":"2017-12-12T19:23:31","guid":{"rendered":"https:\/\/java2blog.com\/?p=4941"},"modified":"2021-04-14T00:58:56","modified_gmt":"2021-04-13T19:28:56","slug":"random-number-generator-java","status":"publish","type":"post","link":"https:\/\/java2blog.com\/random-number-generator-java\/","title":{"rendered":"Random number generator in java"},"content":{"rendered":"<p>In this tutorial, we will see about random number generators.You might have requirement where you want to generate random numbers to perform some operation.<\/p>\n<p><strong>For example:<\/strong><\/p>\n<p>Let&#8217;s say you are creating a game which uses dice for each player&#8217;s turn. You can put logic to generate random number whenever the player uses dice.<\/p>\n<p>There are many ways to generate random numbers in java.Let&#8217;s see each with the help of example.<br \/>\n<div id=\"toc_container\" class=\"toc_light_blue no_bullets\"><p class=\"toc_title\">Table of Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Using_Random_class\">Using Random class<\/a><\/li><li><a href=\"#Using_ThreadLocalRandom_class\">Using ThreadLocalRandom class<\/a><\/li><li><a href=\"#Using_Mathrandom_method\">Using Math.random method<\/a><\/li><li><a href=\"#Generate_random_numbers_between_range\">Generate random numbers between range<\/a><\/li><\/ul><\/div>\n\n<h2><span id=\"Using_Random_class\"><span style=\"color: #f89820;\">Using Random class<\/span><\/span><\/h2>\n<p>You can use java.util.Random to generate random numbers in java.You can generate integers, float, double, boolean etc using Random class.<\/p>\n<p>Let&#8217;s understand with the help of example:<\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog;\n\nimport java.util.Random;\n\npublic class RandomClassGeneratorMain {\n\n    public static void main(String[] args) {\n        Random randomGenerator=new Random();\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random integers\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(randomGenerator.nextInt());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random double\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(randomGenerator.nextDouble());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random floats\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(randomGenerator.nextFloat());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random booleans\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(randomGenerator.nextBoolean());\n        }\n    }\n}\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"content-box-green\">============================<br \/>\nGenerating 5 random integers<br \/>\n============================<br \/>\n1342618771<br \/>\n-1849662552<br \/>\n1719085329<br \/>\n2141641685<br \/>\n-819134727<br \/>\n============================<br \/>\nGenerating 5 random doubles<br \/>\n============================<br \/>\n0.1825454639005325<br \/>\n0.5331492085899436<br \/>\n0.830900901839756<br \/>\n0.8490109501015005<br \/>\n0.7968080535091425<br \/>\n============================<br \/>\nGenerating 5 random floats<br \/>\n============================<br \/>\n0.9831014<br \/>\n0.24019146<br \/>\n0.11383718<br \/>\n0.42760438<br \/>\n0.019532561<br \/>\n============================<br \/>\nGenerating 5 random booleans<br \/>\n============================<br \/>\nfalse<br \/>\nfalse<br \/>\ntrue<br \/>\ntrue<br \/>\nfalse<\/div>\n<h2><span id=\"Using_ThreadLocalRandom_class\"><span style=\"color: #f89820;\">Using ThreadLocalRandom class<\/span><\/span><\/h2>\n<p>You can use ThreadLocalRandom class to generate random numbers.This class got introduced in Java 7.Although java.util.Random is thread safe but multiple threads tries to access same object, there will be lot of contention and performance issue.In case of ThreadLocalRandom, each thread will generate their own random numbers and there won&#8217;t be any contention.<br \/>\nLet&#8217;s understand with the help of example:<\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog;\n\nimport java.util.concurrent.ThreadLocalRandom;\n\npublic class ThreadLocalRandomMain {\n\n    public static void main(String[] args) {\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random integers\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(ThreadLocalRandom.current().nextInt());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random doubles\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(ThreadLocalRandom.current().nextDouble());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random floats\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(ThreadLocalRandom.current().nextFloat());\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random booleans\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(ThreadLocalRandom.current().nextBoolean());\n        }\n    }\n}\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"content-box-green\">============================<br \/>\nGenerating 5 random integers<br \/>\n============================<br \/>\n-315342453<br \/>\n-1922639586<br \/>\n-19084346<br \/>\n-615337866<br \/>\n-1075097641<br \/>\n============================<br \/>\nGenerating 5 random doubles<br \/>\n============================<br \/>\n0.9074981945011997<br \/>\n0.7626761438609163<br \/>\n0.4439078754038527<br \/>\n0.8663565773294881<br \/>\n0.8133933685024771<br \/>\n============================<br \/>\nGenerating 5 random floats<br \/>\n============================<br \/>\n0.50696343<br \/>\n0.4109127<br \/>\n0.4284398<br \/>\n0.37340754<br \/>\n0.28446126<br \/>\n============================<br \/>\nGenerating 5 random booleans<br \/>\n============================<br \/>\nfalse<br \/>\ntrue<br \/>\nfalse<br \/>\nfalse<br \/>\ntrue<\/div>\n<h2><span id=\"Using_Mathrandom_method\"><span style=\"color: #f89820;\">Using Math.random method<\/span><\/span><\/h2>\n<p>You can use Math.random&#8217;s method to generate random doubles.<\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog;\n\npublic class MathRandomMain {\n\n    public static void main(String[] args) {\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random doubles\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(Math.random());\n        }\n    }\n}\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"content-box-green\">============================<br \/>\nGenerating 5 random doubles<br \/>\n============================<br \/>\n0.3644159931296438<br \/>\n0.07011727069753859<br \/>\n0.7602271011682066<br \/>\n0.914594143579762<br \/>\n0.6506514073704143<\/div>\n<div class=\"context-box-link\">\nRead also:<br \/>\n<a href=\"https:\/\/java2blog.com\/random-number-between-0-1-java\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java random number between 0 and 1<\/a><br \/>\n<a href=\"https:\/\/java2blog.com\/java-random-number-1-10\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java random number between 1 and 10<\/a><\/p>\n<\/div>\n<h2><span id=\"Generate_random_numbers_between_range\"><span style=\"color: #f89820;\">Generate random numbers between range<\/span><\/span><\/h2>\n<p>If you want to generate random numbers between certain range, you can use Random and ThreadLocalRandom to do it.<\/p>\n<pre class=\"java\" name=\"code\">package org.arpit.java2blog;\n\nimport java.util.Random;\nimport java.util.concurrent.ThreadLocalRandom;\n\npublic class GenerateRandomInRangeMain {\n\n    public static void main(String[] args) {\n\n        int minimum=10;\n        int maximum=20;\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random integer in range of 10 to 20 using Random\");\n        System.out.println(\"============================\");\n        Random randomGenerator=new Random();\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(randomGenerator.nextInt((maximum - minimum) + 1) + minimum);\n        }\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random integer in range of 10 to 20 using ThreadLocalRandom\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(ThreadLocalRandom.current().nextInt(minimum,maximum+1));\n        }\n\n        System.out.println(\"============================\");\n        System.out.println(\"Generating 5 random integer in range of 10 to 20 using Math.random\");\n        System.out.println(\"============================\");\n        for (int i = 0; i &lt; 5; i++) {\n            System.out.println(minimum + (int)(Math.random() * ((maximum - minimum) + 1)));\n        }\n    }\n}\n\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"content-box-green\">============================<br \/>\nGenerating 5 random integer in range of 10 to 20 using Random<br \/>\n============================<br \/>\n11<br \/>\n18<br \/>\n14<br \/>\n13<br \/>\n15<br \/>\n============================<br \/>\nGenerating 5 random integer in range of 10 to 20 using ThreadLocalRandom<br \/>\n============================<br \/>\n10<br \/>\n12<br \/>\n13<br \/>\n13<br \/>\n16<br \/>\n============================<br \/>\nGenerating 5 random integer in range of 10 to 20 using Math.random<br \/>\n============================<br \/>\n14<br \/>\n10<br \/>\n16<br \/>\n20<br \/>\n15<\/div>\n<p>That&#8217;s all about generating random numbers in java.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Table of ContentsUsing Random classUsing ThreadLocalRandom classUsing Math.random methodGenerate random numbers between range In this tutorial, we will see about random number generators.You might have requirement where you want to generate random numbers to perform some operation. For example: Let&#8217;s say you are creating a game which uses dice for each player&#8217;s turn. You can [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_mi_skip_tracking":false},"categories":[219],"tags":[],"_links":{"self":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts\/4941"}],"collection":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/comments?post=4941"}],"version-history":[{"count":0,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/posts\/4941\/revisions"}],"wp:attachment":[{"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/media?parent=4941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/categories?post=4941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/java2blog.com\/wp-json\/wp\/v2\/tags?post=4941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}