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 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:
Article Tags :