Class JVMRandom
- java.lang.Object
-
- java.util.Random
-
- org.apache.commons.lang.math.JVMRandom
-
- All Implemented Interfaces:
Serializable
public final class JVMRandom extends Random
JVMRandomis a wrapper that supports all possible Random methods via theMath.random()method and its system-wideRandomobject.It does this to allow for a Random class in which the seed is shared between all members of the class - a better name would have been SharedSeedRandom.
N.B. the current implementation overrides the methods
Random.nextInt(int)andRandom.nextLong()to produce positive numbers ranging from 0 (inclusive) to MAX_VALUE (exclusive).- Since:
- 2.0
- Version:
- $Id: JVMRandom.java 911986 2010-02-19 21:19:05Z niallp $
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description JVMRandom()Constructs a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleannextBoolean()Returns the next pseudorandom, uniformly distributed boolean value from the Math.random() sequence.voidnextBytes(byte[] byteArray)Unsupported in 2.0.doublenextDouble()Synonymous to the Math.random() call.floatnextFloat()Returns the next pseudorandom, uniformly distributed float value between0.0and1.0from the Math.random() sequence.doublenextGaussian()Unsupported in 2.0.intnextInt()Returns the next pseudorandom, uniformly distributed int value from the Math.random() sequence.intnextInt(int n)Returns a pseudorandom, uniformly distributed int value between0(inclusive) and the specified value (exclusive), from the Math.random() sequence.longnextLong()Returns the next pseudorandom, uniformly distributed long value from the Math.random() sequence.longnextLong(long n)Returns a pseudorandom, uniformly distributed long value between0(inclusive) and the specified value (exclusive), from the Math.random() sequence.voidsetSeed(long seed)Unsupported in 2.0.
-
-
-
Method Detail
-
setSeed
public void setSeed(long seed)
Unsupported in 2.0.- Overrides:
setSeedin classRandom- Parameters:
seed- ignored- Throws:
UnsupportedOperationException
-
nextGaussian
public double nextGaussian()
Unsupported in 2.0.- Overrides:
nextGaussianin classRandom- Returns:
- Nothing, this method always throws an UnsupportedOperationException.
- Throws:
UnsupportedOperationException
-
nextBytes
public void nextBytes(byte[] byteArray)
Unsupported in 2.0.- Overrides:
nextBytesin classRandom- Parameters:
byteArray- ignored- Throws:
UnsupportedOperationException
-
nextInt
public int nextInt()
Returns the next pseudorandom, uniformly distributed int value from the Math.random() sequence.
Identical tonextInt(Integer.MAX_VALUE)N.B. All values are >= 0.
-
nextInt
public int nextInt(int n)
Returns a pseudorandom, uniformly distributed int value between
0(inclusive) and the specified value (exclusive), from the Math.random() sequence.- Overrides:
nextIntin classRandom- Parameters:
n- the specified exclusive max-value- Returns:
- the random int
- Throws:
IllegalArgumentException- whenn <= 0
-
nextLong
public long nextLong()
Returns the next pseudorandom, uniformly distributed long value from the Math.random() sequence.
Identical tonextLong(Long.MAX_VALUE)N.B. All values are >= 0.
-
nextLong
public long nextLong(long n)
Returns a pseudorandom, uniformly distributed long value between
0(inclusive) and the specified value (exclusive), from the Math.random() sequence.- Parameters:
n- the specified exclusive max-value- Returns:
- the random long
- Throws:
IllegalArgumentException- whenn <= 0
-
nextBoolean
public boolean nextBoolean()
Returns the next pseudorandom, uniformly distributed boolean value from the Math.random() sequence.
- Overrides:
nextBooleanin classRandom- Returns:
- the random boolean
-
nextFloat
public float nextFloat()
Returns the next pseudorandom, uniformly distributed float value between
0.0and1.0from the Math.random() sequence.
-
nextDouble
public double nextDouble()
Synonymous to the Math.random() call.
- Overrides:
nextDoublein classRandom- Returns:
- the random double
-
-