- In java we can generate random number in two ways
- By using Random class
- By using Math.random
Program #1: Java Example program to generate random numbers using random class within the range of 1 to 10
- First we need to create object of java.util.Random class.
- After creating object of java.util.Random class then we need call nextInt() method by passing range
- int range = maximum - minimum + 1;
- int randomNum = rn.nextInt(range) + minimum;
- package com.randomnumbergenerator;
- import java.util.Random;
- import java.util.Scanner;
- public class RandomNumber {
- /**
- * @Website: www.instanceofjava.com
- * @category: how to generate random numbers in java within range
- */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.println("Enter minimum number");
- int minimum=in.nextInt();
- System.out.println("Enter maximum number");
- int maximum=in.nextInt();
- Random rn = new Random();
- int range = maximum - minimum + 1;
- int randomNum = rn.nextInt(range) + minimum;
- System.out.println("Random Number= "+randomNum);
- }
- }
Output:
- Enter minimum number
- 1
- Enter maximum number
- 10
- Random Number= 4
Program #2: Java Example program to generate random numbers using Math.random within the range of 1 to 10
- By using Math.random() method also we can generate random number in java
- int randomNum = minimum + (int)(Math.random() * maximum);
- package com.randomnumbergenerator;
- import java.util.Random;
- import java.util.Scanner;
- public class RandomNumber {
- /**
- * @Website: www.instanceofjava.com
- * @category: how to generate random numbers in java within range
- */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.println("Enter minimum number");
- int minimum=in.nextInt();
- System.out.println("Enter maximum number");
- int maximum=in.nextInt();
- int randomNum = minimum + (int)(Math.random() * maximum);
- System.out.println("Random Number= "+randomNum);
- }
- }
Output:
- Enter minimum number
- 1
- Enter maximum number
- 10
- Random Number=5
Program #3: Java Example program to generate 10 random numbers using Random class within the range of 1 to 100 using for loop.
- package com.randomnumbergenerator;
- import java.util.Random;
- import java.util.Scanner;
- public class RandomNumber {
- /**
- * @Website: www.instanceofjava.com
- * @category: how to generate random numbers in java within range
- */
- public static void main(String[] args) {
- Random randomNumGenerator = new Random();
- for (int idx = 1; idx <= 10; ++idx){
- int randomInt = randomNumGenerator.nextInt(100);
- System.out.println("Random Number= "+randomInt);
- }
- }
- }
Output:
- Random Number= 17
- Random Number= 3
- Random Number= 74
- Random Number= 59
- Random Number= 81
- Random Number= 90
- Random Number= 2
- Random Number= 32
- Random Number= 11
- Random Number= 75
How to generate random numbers in java without repetitions
- lets see how to generate unique random numbers in java
- By using Collections.shuffle();
Program #4: Java Example program to generate 4 random numbers using Random class within the range of 1 to 100 without duplicate / java generate unique random number between 1 and 100
- package com.randomnumbergenerator;
- public class RandomNumber {
- /**
- * @Website: www.instanceofjava.com
- * @category: how to generate random numbers in java within range
- */
- public static void main(String[] args) {
- ArrayList<Integer> list = new ArrayList<Integer>();
- for (int i=1; i<10; i++) {
- list.add(new Integer(i));
- }
- Collections.shuffle(list);
- for (int i=0; i<4; i++) {
- System.out.println("Random Number= "+(list.get(i)));
- }
- }
- }
- }
Output:
- Random Number= 7
- Random Number= 3
- Random Number= 2
- Random Number= 9
Program #5: Java Example program to generate 10 random numbers. random number generator that doesn't repeat java
- package com.randomnumbergenerator;
- public class RandomNumber {
- /**
- * @Website: www.instanceofjava.com
- * @category: how to generate 10 random numbers in java within range
- */
- public static final int SET_SIZE_REQUIRED = 10;
- public static final int NUMBER_RANGE = 100;
- public static void main(String[] args) {
- Random random = new Random();
- Set set = new HashSet<Integer>(SET_SIZE_REQUIRED);
- while(set.size()< SET_SIZE_REQUIRED) {
- while (set.add(random.nextInt(NUMBER_RANGE)) != true)
- ;
- }
- assert set.size() == SET_SIZE_REQUIRED;
- System.out.println(set);
- }
- }
Output:
- [48, 99, 24, 58, 44, 77, 14, 95, 31, 79]
Hi. It seems if the RANGE is lowered and the set size is too close to the range max then the order is no longer random?
ReplyDeleteI want to use this to get only the numbers 0-9 in a random order, but it seems to be not working, the numbers just come 0-9 in "correct" order when set size and range size is 10.. ?