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 values
    Syntax:
    public IntStream ints()
    Returns:
    a stream of pseudorandom int values
  3. 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
  4. 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
  5. 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
  6. **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
  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 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
  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 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
  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 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
  10. 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
  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 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
  12. 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
  13. 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

Java program to demonstrate usage 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);

`` }

}

Output:

4 true 0.19674934340402916 0.7372021 1.4877581394085997 [-44 75 68 89 81 -72 -1 -66 -64 117 ] 158739962004803677 -1344764816

Reference: