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