# Uses of Interface
java.util.random.RandomGenerator

Packages that use RandomGenerator
Package
Description
java.security
Provides the classes and interfaces for the security framework.
java.util
Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
java.util.concurrent
Utility classes commonly useful in concurrent programming.
java.util.random
This package contains classes and interfaces that support a generic API for random number generation.

## Uses of RandomGenerator in java.security

Classes in java.security that implement RandomGenerator
Modifier and Type
Class
Description
`class`
`SecureRandom`
This class provides a cryptographically strong random number generator (RNG).

## Uses of RandomGenerator in java.util

Classes in java.util that implement RandomGenerator
Modifier and Type
Class
Description
`class`
`Random`
An instance of this class is used to generate a stream of pseudorandom numbers; its period is only 248.
`final class`
`SplittableRandom`
A generator of uniform pseudorandom values (with period 264) applicable for use in (among other contexts) isolated parallel computations that may generate subtasks.

## Uses of RandomGenerator in java.util.concurrent

Classes in java.util.concurrent that implement RandomGenerator
Modifier and Type
Class
Description
`class`
`ThreadLocalRandom`
A random number generator (with period 264) isolated to the current thread.

## Uses of RandomGenerator in java.util.random

Classes in java.util.random with type parameters of type RandomGenerator
Modifier and Type
Class
Description
`final class`
`RandomGeneratorFactory<T extends RandomGenerator>`
This is a factory class for generating multiple random number generators of a specific algorithm.
Subinterfaces of RandomGenerator in java.util.random
Modifier and Type
Interface
Description
`static interface`
`RandomGenerator.ArbitrarilyJumpableGenerator`
This interface is designed to provide a common protocol for objects that generate sequences of pseudorandom values and can easily jump forward, by an arbitrary amount, to a distant point in the state cycle.
`static interface`
`RandomGenerator.JumpableGenerator`
This interface is designed to provide a common protocol for objects that generate pseudorandom values and can easily jump forward, by a moderate amount (ex. 264) to a distant point in the state cycle.
`static interface`
`RandomGenerator.LeapableGenerator`
This interface is designed to provide a common protocol for objects that generate sequences of pseudorandom values and can easily not only jump but also leap forward, by a large amount (ex. 2128), to a very distant point in the state cycle.
`static interface`
`RandomGenerator.SplittableGenerator`
This interface is designed to provide a common protocol for objects that generate sequences of pseudorandom values and can be split into two objects (the original one and a new one) each of which obey that same protocol (and therefore can be recursively split indefinitely).
`static interface`
`RandomGenerator.StreamableGenerator`
The `RandomGenerator.StreamableGenerator` interface augments the `RandomGenerator` interface to provide methods that return streams of `RandomGenerator` objects.
Methods in java.util.random with type parameters of type RandomGenerator
Modifier and Type
Method
Description
`static <T extends RandomGenerator>
RandomGeneratorFactory<T>`
RandomGeneratorFactory.`of(String name)`
Returns a `RandomGeneratorFactory` that can produce instances of `RandomGenerator` that utilize the `name` algorithm.
Methods in java.util.random that return RandomGenerator
Modifier and Type
Method
Description
`default RandomGenerator`
RandomGenerator.JumpableGenerator.`copyAndJump()`
Copy this generator, jump this generator forward, then return the copy.
`static RandomGenerator`
RandomGenerator.`getDefault()`
Returns a `RandomGenerator` meeting the minimal requirement of having an algorithm whose state bits are greater than or equal 64.
`static RandomGenerator`
RandomGenerator.`of(String name)`
Returns an instance of `RandomGenerator` that utilizes the `name` algorithm.
Methods in java.util.random that return types with arguments of type RandomGenerator
Modifier and Type
Method
Description
`static Stream<RandomGeneratorFactory<RandomGenerator>>`
RandomGeneratorFactory.`all()`
Returns a non-empty stream of available `RandomGeneratorFactory(s)`.
`static RandomGeneratorFactory<RandomGenerator>`
RandomGeneratorFactory.`getDefault()`
Returns a `RandomGeneratorFactory` meeting the minimal requirement of having an algorithm whose state bits are greater than or equal 64.
`default Stream<RandomGenerator>`
RandomGenerator.JumpableGenerator.`jumps()`
Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.JumpableGenerator.`jumps(long streamSize)`
Returns a stream producing the given `streamSize` number of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.JumpableGenerator.`rngs()`
Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.JumpableGenerator.`rngs(long streamSize)`
Returns a stream producing the given `streamSize` number of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.SplittableGenerator.`rngs()`
Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.SplittableGenerator.`rngs(long streamSize)`
Returns a stream producing the given `streamSize` number of new pseudorandom number generators, each of which implements the `RandomGenerator` interface.
`Stream<RandomGenerator>`
RandomGenerator.StreamableGenerator.`rngs()`
Returns an effectively unlimited stream of objects, each of which implements the `RandomGenerator` interface.
`default Stream<RandomGenerator>`
RandomGenerator.StreamableGenerator.`rngs(long streamSize)`
Returns an effectively unlimited stream of objects, each of which implements the `RandomGenerator` interface.