Class ThreadLocalRandom

  • All Implemented Interfaces:
    java.io.Serializable

    public class ThreadLocalRandom
    extends java.util.Random
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ThreadLocalRandom()
      Constructor called only by localRandom.initialValue.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static ThreadLocalRandom current()
      Returns the current thread's ThreadLocalRandom.
      protected int next​(int bits)  
      double nextDouble​(double n)
      Returns a pseudorandom, uniformly distributed double value between 0 (inclusive) and the specified value (exclusive).
      double nextDouble​(double least, double bound)
      Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
      int nextInt​(int least, int bound)
      Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
      long nextLong​(long n)
      Returns a pseudorandom, uniformly distributed value between 0 (inclusive) and the specified value (exclusive).
      long nextLong​(long least, long bound)
      Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
      void setSeed​(long seed)
      Throws UnsupportedOperationException.
      • Methods inherited from class java.util.Random

        doubles, doubles, doubles, doubles, ints, ints, ints, ints, longs, longs, longs, longs, nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ThreadLocalRandom

        public ThreadLocalRandom()
        Constructor called only by localRandom.initialValue. We rely on the fact that the superclass no-arg constructor invokes setSeed exactly once to initialize.
    • Method Detail

      • current

        public static ThreadLocalRandom current()
        Returns the current thread's ThreadLocalRandom.
        Returns:
        the current thread's ThreadLocalRandom
      • setSeed

        public void setSeed​(long seed)
        Throws UnsupportedOperationException. Setting seeds in this generator is not supported.
        Overrides:
        setSeed in class java.util.Random
        Throws:
        java.lang.UnsupportedOperationException - always
      • next

        protected int next​(int bits)
        Overrides:
        next in class java.util.Random
      • nextInt

        public int nextInt​(int least,
                           int bound)
        Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
        Parameters:
        least - the least value returned
        bound - the upper bound (exclusive)
        Returns:
        the next value
        Throws:
        java.lang.IllegalArgumentException - if least greater than or equal to bound
      • nextLong

        public long nextLong​(long n)
        Returns a pseudorandom, uniformly distributed value between 0 (inclusive) and the specified value (exclusive).
        Parameters:
        n - the bound on the random number to be returned. Must be positive.
        Returns:
        the next value
        Throws:
        java.lang.IllegalArgumentException - if n is not positive
      • nextLong

        public long nextLong​(long least,
                             long bound)
        Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
        Parameters:
        least - the least value returned
        bound - the upper bound (exclusive)
        Returns:
        the next value
        Throws:
        java.lang.IllegalArgumentException - if least greater than or equal to bound
      • nextDouble

        public double nextDouble​(double n)
        Returns a pseudorandom, uniformly distributed double value between 0 (inclusive) and the specified value (exclusive).
        Parameters:
        n - the bound on the random number to be returned. Must be positive.
        Returns:
        the next value
        Throws:
        java.lang.IllegalArgumentException - if n is not positive
      • nextDouble

        public double nextDouble​(double least,
                                 double bound)
        Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).
        Parameters:
        least - the least value returned
        bound - the upper bound (exclusive)
        Returns:
        the next value
        Throws:
        java.lang.IllegalArgumentException - if least greater than or equal to bound