Class JVMRandom

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

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:
  • Constructor Details

    • JVMRandom

      public JVMRandom()
      Constructs a new instance.
  • Method Details

    • 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.
      Specified by:
      nextGaussian in interface RandomGenerator
      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.
      Specified by:
      nextBytes in interface RandomGenerator
      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.

      Specified by:
      nextInt in interface RandomGenerator
      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.

      Specified by:
      nextInt in interface RandomGenerator
      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.

      Specified by:
      nextLong in interface RandomGenerator
      Overrides:
      nextLong in class Random
      Returns:
      the random long
    • 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 - when n <= 0
    • nextBoolean

      public boolean nextBoolean()

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

      Specified by:
      nextBoolean in interface RandomGenerator
      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.

      Specified by:
      nextFloat in interface RandomGenerator
      Overrides:
      nextFloat in class Random
      Returns:
      the random float
    • nextDouble

      public double nextDouble()

      Synonymous to the Math.random() call.

      Specified by:
      nextDouble in interface RandomGenerator
      Overrides:
      nextDouble in class Random
      Returns:
      the random double