Package org.multiverse.utils

## Class ThreadLocalRandom

- java.lang.Object
- - java.util.Random
  - - org.multiverse.utils.ThreadLocalRandom

- All Implemented Interfaces:
    `Serializable`

      public class ThreadLocalRandom
      extends 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 `Random`
      Throws:
        `UnsupportedOperationException` - always

    - #### next

          protected int next​(int bits)

      Overrides:
        `next` in class `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:
        `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:
        `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:
        `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:
        `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:
        `IllegalArgumentException` - if least greater than or equal to bound