org.multiverse.utils

## Class ThreadLocalRandom

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

All Implemented Interfaces:
  java.io.Serializable

    public class ThreadLocalRandom
    extends java.util.Random

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`ThreadLocalRandom()` Constructor called only by localRandom.initialValue.

### Method Summary

Methods
`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

`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