Summary: In this programming example, we will learn to generate random numbers in Java.
In Java, we can generate random numbers using the following two classes:
- Random
- Math
Let’s see an example of each of them.
Method 1: Using Random Class
The nextInt(int MAX)
method of the Random
class (available in java.util
package) returns a random integer less than MAX and the nextDouble() method of the same class returns the random floating value between 0 and 1.
Similarly, we can use nextFloat(
), nextLong()
, nextShort()
, etc to generate specific types of a random number in Java.
import java.util.Random;
class Main {
public static void main(String[] args) {
Random random = new Random();
//Generate random number less than MAX
//Syntax: random.nextInt(MAX);
System.out.println("Random Integer less than 10: "+random.nextInt(10));
System.out.println("Random Integer less than 50: "+random.nextInt(50));
//Generate Random number betwenn MIN and MAX
//Syntax: random.nextInt(MAX-MIN) + MIN;
System.out.println("Random Integer Between 20 to 30: "+(random.nextInt(30-20) + 20));
//Generate Random Float/Double number
System.out.println("Random Double: "+random.nextDouble());
System.out.println("Random Double less than 20: "+random.nextDouble()*20);
}
}
Output:
Random Integer less than 10: 8
Random Integer less than 50: 20
Random Integer Between 20 to 30: 25
Random Double: 0.06373045731187232
Random Double less than 20: 9.083174360349421
Method 2: Using Math Class
The static random()
method of Math
class (available in the java.lang
package) can also generate a random number in Java.
Here is the Java program that generates random integers and floating numbers:
class Main {
public static void main(String[] args) {
//Generate random double
System.out.println("Random Double: " + Math.random());
//Generate random number less than MAX
//Syntax: (int)(Math.random()*MAX);
System.out.println("Random Integer less than 10: "+ (int)(Math.random()*10));
//Generate random number between MIN and MAX
//Syntax: (int)(Math.random()*(MAX-MIN) + MIN);
System.out.println("Random Integer between 40 and 50: "+ (int)(Math.random() * (50-40) + 40));
}
}
Output:
Random Double: 0.17455668055083073
Random Integer less than 10: 5
Random Integer between 40 and 50: 43
There are the two ways using which we can easily generate random numbers in Java without the need of external library.