org.apache.commons.lang.math
Class JVMRandom

java.lang.Object
  extended by java.util.Random
      extended by org.apache.commons.lang.math.JVMRandom
All Implemented Interfaces:
Serializable

public final class JVMRandom
extends Random

JVMRandom is a wrapper that supports all possible Random methods via the Math.random() method and its system-wide Random object.

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) and Random.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
JVMRandom()
          Constructs a new instance.
 
Method Summary
 boolean nextBoolean()
          Returns the next pseudorandom, uniformly distributed boolean value from the Math.random() sequence.
 void nextBytes(byte[] byteArray)
          Unsupported in 2.0.
 double nextDouble()
          Synonymous to the Math.random() call.
 float nextFloat()
          Returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from the Math.random() sequence.
 double nextGaussian()
          Unsupported in 2.0.
 int nextInt()
          Returns the next pseudorandom, uniformly distributed int value from the Math.random() sequence.
 int nextInt(int n)
          Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), from the Math.random() sequence.
 long nextLong()
          Returns the next pseudorandom, uniformly distributed long value from the Math.random() sequence.
static long nextLong(long n)
          Returns a pseudorandom, uniformly distributed long value between 0 (inclusive) and the specified value (exclusive), from the Math.random() sequence.
 void setSeed(long seed)
          Unsupported in 2.0.
 
Methods inherited from class java.util.Random
next
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JVMRandom

public JVMRandom()
Constructs a new instance.

Method Detail

setSeed

public void setSeed(long seed)
Unsupported in 2.0.

Overrides:
setSeed in class Random
Parameters:
seed - ignored
Throws:
UnsupportedOperationException

nextGaussian

public double nextGaussian()
Unsupported in 2.0.

Overrides:
nextGaussian in class Random
Returns:
Nothing, this method always throws an UnsupportedOperationException.
Throws:
UnsupportedOperationException

nextBytes

public void nextBytes(byte[] byteArray)
Unsupported in 2.0.

Overrides:
nextBytes in class Random
Parameters:
byteArray - ignored
Throws:
UnsupportedOperationException

nextInt

public int nextInt()

Returns the next pseudorandom, uniformly distributed int value from the Math.random() sequence.

Identical to nextInt(Integer.MAX_VALUE)

N.B. All values are >= 0.

Overrides:
nextInt in class Random
Returns:
the random int

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:
nextInt in class Random
Parameters:
n - the specified exclusive max-value
Returns:
the random int
Throws:
IllegalArgumentException - when n <= 0

nextLong

public long nextLong()

Returns the next pseudorandom, uniformly distributed long value from the Math.random() sequence.

Identical to nextLong(Long.MAX_VALUE)

N.B. All values are >= 0.

Overrides:
nextLong in class Random
Returns:
the random long

nextLong

public static 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 - when n <= 0

nextBoolean

public boolean nextBoolean()

Returns the next pseudorandom, uniformly distributed boolean value from the Math.random() sequence.

Overrides:
nextBoolean in class Random
Returns:
the random boolean

nextFloat

public float nextFloat()

Returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from the Math.random() sequence.

Overrides:
nextFloat in class Random
Returns:
the random float

nextDouble

public double nextDouble()

Synonymous to the Math.random() call.

Overrides:
nextDouble in class Random
Returns:
the random double


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.