Class 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

      Constructors 
      Constructor Description
      JVMRandom()
      Constructs a new instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      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.
    • Constructor Detail

      • JVMRandom

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

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