Java.util.Random class in Java (original) (raw)

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:

Declaration:

public class Random extends Object implements Serializable

Methods:

  1. 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
  2. java.util.Random.ints(): Returns an effectively unlimited stream of pseudo random int valuesSyntax:
    public IntStream ints()
    Returns:
    a stream of pseudorandom int values
  3. java.util.Random.longs(): Returns an effectively unlimited stream of pseudo random long valuesSyntax:
    public LongStream longs()
    Returns:
    a stream of pseudorandom long values
  4. next(int bits): java.util.Random.next(int bits) Generates the next pseudo random numberSyntax:
    protected int next(int bits)
    Parameters:
    bits - random bits
    Returns:
    the next pseudo random value from this
    random number generator's sequence
  5. java.util.Random.nextBoolean(): Returns the next pseudo random, uniformly distributed boolean value from this random number generator's sequenceSyntax:
    public boolean nextBoolean()
    Returns:
    the next pseudorandom, uniformly distributed boolean value
    from this random number generator's sequence
  6. java.util.Random.nextBytes(byte[] bytes) :Generates random bytes and places them into a user-supplied byte arraySyntax:
    public void nextBytes(byte[] bytes)
    Parameters:
    bytes - the byte array to fill with random bytes
    Throws:
    NullPointerException - if the byte array is null
  7. 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 sequenceSyntax:
    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
  8. 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 sequenceSyntax:
    public float nextFloat()
    Returns:
    the next pseudorandom, uniformly distributed float value
    between 0.0 and 1.0 from this
    random number generator's sequence
  9. 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 sequenceSyntax:
    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
  10. java.util.Random.nextInt(): Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequenceSyntax:
    public int nextInt()
    Returns:
    the next pseudorandom, uniformly distributed int value from
    this random number generator's sequence
  11. 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 sequenceSyntax:
    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
  12. java.util.Random.nextLong(): Returns the next pseudorandom, uniformly distributed long value from this random number generator's sequenceSyntax:
    public long nextLong()
    Returns:
    the next pseudorandom, uniformly distributed long value
    from this random number
    generator's sequence
  13. java.util.Random.setSeed(long seed): Sets the seed of this random number generator using a single long seedSyntax:
    public void setSeed(long seed)
    Parameters:
    seed - the initial seed

Methods inherited from class java.lang.Object

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: