Java.util.Random class in Java
Last Updated :
07 May, 2019
Random class is used to generate pseudo-random numbers in java. An instance of this class is thread-safe. The instance of this class is however cryptographically insecure. This class provides various method calls to generate different random data types such as float, double, int.
Constructors:
- Random(): Creates a new random number generator
- Random(long seed): Creates a new random number generator using a single long seed
Declaration:
public class Random
extends Object
implements Serializable
Methods:
- java.util.Random.doubles(): Returns an effectively unlimited stream of pseudo random double values, each between zero (inclusive) and one (exclusive)
Syntax:
public DoubleStream doubles()
Returns:
a stream of pseudorandom double values
- java.util.Random.ints(): Returns an effectively unlimited stream of pseudo random int values
Syntax:
public IntStream ints()
Returns:
a stream of pseudorandom int values
- java.util.Random.longs(): Returns an effectively unlimited stream of pseudo random long values
Syntax:
public LongStream longs()
Returns:
a stream of pseudorandom long values
- next(int bits): java.util.Random.next(int bits) Generates the next pseudo random number
Syntax:
protected int next(int bits)
Parameters:
bits - random bits
Returns:
the next pseudo random value from this
random number generator's sequence
- java.util.Random.nextBoolean(): Returns the next pseudo random, uniformly distributed boolean value from this random number generator's sequence
Syntax:
public boolean nextBoolean()
Returns:
the next pseudorandom, uniformly distributed boolean value
from this random number generator's sequence
- java.util.Random.nextBytes(byte[] bytes) :Generates random bytes and places them into a user-supplied byte array
Syntax:
public void nextBytes(byte[] bytes)
Parameters:
bytes - the byte array to fill with random bytes
Throws:
NullPointerException - if the byte array is null
- java.util.Random.nextDouble(): Returns the next pseudo random, uniformly distributed double value between 0.0 and 1.0 from this random number generator's sequence
Syntax:
public double nextDouble()
Returns:
the next pseudo random, uniformly distributed double
value between 0.0 and 1.0 from this
random number generator's sequence
- java.util.Random.nextFloat(): Returns the next pseudo random, uniformly distributed float value between 0.0 and 1.0 from this random number generator's sequence
Syntax:
public float nextFloat()
Returns:
the next pseudorandom, uniformly distributed float value
between 0.0 and 1.0 from this
random number generator's sequence
- java.util.Random.nextGaussian(): Returns the next pseudo random, Gaussian ("normally") distributed double value with mean 0.0 and standard deviation 1.0 from this random number generator's sequence
Syntax:
public double nextGaussian()
Returns:
the next pseudorandom, Gaussian ("normally") distributed double
value with mean 0.0 and standard deviation 1.0 from this
random number generator's sequence
- java.util.Random.nextInt(): Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence
Syntax:
public int nextInt()
Returns:
the next pseudorandom, uniformly distributed int value from
this random number generator's sequence
- java.util.Random.nextInt(int bound): Returns a pseudo random, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence
Syntax:
public int nextInt(int bound)
Parameters:
bound - the upper bound (exclusive). Must be positive.
Returns:
the next pseudorandom, uniformly distributed int value
between zero (inclusive) and bound
(exclusive) from this random number generator's sequence
Throws:
IllegalArgumentException - if bound is not positive
- java.util.Random.nextLong(): Returns the next pseudorandom, uniformly distributed long value from this random number generator's sequence
Syntax:
public long nextLong()
Returns:
the next pseudorandom, uniformly distributed long value
from this random number
generator's sequence
- java.util.Random.setSeed(long seed): Sets the seed of this random number generator using a single long seed
Syntax:
public void setSeed(long seed)
Parameters:
seed - the initial seed
Methods inherited from class java.lang.Object
- clone
- equals
- finalize
- getClass
- hashCode
- notify
- notifyAll
- toString
- wait
Java program to demonstrate usage of Random class
Java
// Java program to demonstrate
// method calls of Random class
import java.util.Random;
public class Test
{
public static void main(String[] args)
{
Random random = new Random();
System.out.println(random.nextInt(10));
System.out.println(random.nextBoolean());
System.out.println(random.nextDouble());
System.out.println(random.nextFloat());
System.out.println(random.nextGaussian());
byte[] bytes = new byte[10];
random.nextBytes(bytes);
System.out.printf("[");
for(int i = 0; i< bytes.length; i++)
{
System.out.printf("%d ", bytes[i]);
}
System.out.printf("]\n");
System.out.println(random.nextLong());
System.out.println(random.nextInt());
long seed = 95;
random.setSeed(seed);
// Note: Running any of the code lines below
// will keep the program running as each of the
// methods below produce an unlimited random
// values of the corresponding type
/* System.out.println("Sum of all the elements in the IntStream returned = " +
random.ints().count());
System.out.println("Count of all the elements in the DoubleStream returned = " +
random.doubles().count());
System.out.println("Count of all the elements in the LongStream returned = " +
random.longs().count());
*/
}
}
Output:
4
true
0.19674934340402916
0.7372021
1.4877581394085997
[-44 75 68 89 81 -72 -1 -66 -64 117 ]
158739962004803677
-1344764816
Reference:
Similar Reads
Java.util.Random.nextInt() in Java Generating random numbers themselves has a good utility. Java provides a method Random.nextInt() which is the part of Random Class present in the util package. The nextInt() method is used to get the random integer values in the range of int.Syntaxint nextInt() int nextInt(int bound)int nextInt(int
4 min read
Java.lang.Class class in Java | Set 1 Java provides a class with name Class in java.lang package. Instances of the class Class represent classes and interfaces in a running Java application. The primitive Java types (boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects. It
15+ min read
Java.util Package in Java Java.util PackageIt contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).Following are the Important Classes in Java.util package
4 min read
Random vs ThreadLocalRandom Classes in Java The Random Class of the java.util package is used for generating a stream of pseudorandom numbers. It uses a 48-bit seed, which is amended by implementing a Linear Congruential Formula. The general form of a Linear Congruential Formula is an+1 = k * an + c (mod m) where a0 is the seed, a1, a2, ... a
5 min read
Types of Classes in Java A class is a blueprint in the Java programming language from which an individual object can be built. In Java, we may declare a class by using the class keyword. Class members and functions are declared simply within the class. Classes are required for the creation of Java programs. The object-orien
8 min read