# RandomGenerator.JumpableGenerator

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Methods](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#inhmethods)  

# RandomGenerator.JumpableGenerator

`
public
static


interface
RandomGenerator.JumpableGenerator
`  
`


implements

`[RandomGenerator.StreamableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator)`


`

|----------------------------------------------------|
| java.util.random.RandomGenerator.JumpableGenerator |

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known indirect subclasses [RandomGenerator.ArbitrarilyJumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.ArbitrarilyJumpableGenerator),[RandomGenerator.LeapableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.LeapableGenerator) |-------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [RandomGenerator.ArbitrarilyJumpableGenerator](https://developer.android.com/reference/java/util/random/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. | | [RandomGenerator.LeapableGenerator](https://developer.android.com/reference/java/util/random/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.                  | |

<br />

*** ** * ** ***

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. 2^64^) to a distant point in the state cycle.

Ideally, all[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)objects produced by iterative jumping from a single original[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)object are statistically independent of one another and individually uniform. In practice, one must settle for some approximation to independence and uniformity. In particular, a specific implementation may assume that each generator in a stream produced by the[jump()](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())method is used to produce a number of values no larger than either 2^64^or the square root of its period. Implementors are advised to use algorithms whose period is at least 2^127^.

Methods are provided to perform a single jump operation and also to produce a stream of generators produced from the original by iterative copying and jumping of internal state. A typical strategy for a multithreaded application is to create a single[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)object, calls its[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() method exactly once, and then parcel out generators from the resulting stream, one to each thread. It is generally not a good idea to call[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() on a generator that was itself produced by the[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() method, because the result may be a generator identical to another generator already produce by that call to the[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() method. For this reason, the return type of the[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps())() method is`Stream<RandomGenerator>`rather than`Stream<JumpableGenerator>`, even though the actual generator objects in that stream likely do also implement the[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)interface.

Objects that implement[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)are typically not cryptographically secure. Consider instead using[SecureRandom](https://developer.android.com/reference/java/security/SecureRandom)to get a cryptographically secure pseudo-random number generator for use by security-sensitive applications.

## Summary

|                                                                                                                                                                                                                                                                                                                     ### Public methods                                                                                                                                                                                                                                                                                                                      ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[RandomGenerator.JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)                                           | ` `[copy](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#copy())`() ` Returns a new generator whose internal state is an exact copy of this generator (therefore their future behavior should be identical if subjected to the same series of operations).                                                                                                                                                               |
| ` default `[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)                                                                                | ` `[copyAndJump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#copyAndJump())`() ` Copy this generator, jump this generator forward, then return the copy.                                                                                                                                                                                                                                                              |
| ` abstract void`                                                                                                                                                                      | ` `[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())`() ` Alter the state of this pseudorandom number generator so as to jump forward a large, fixed distance (typically 2^64^or more) within its state cycle.                                                                                                                                                                                               |
| ` abstract double`                                                                                                                                                                    | ` `[jumpDistance](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumpDistance())`() ` Returns the distance by which the[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() method will jump forward within the state cycle of this generator object.                                                                                                             |
| ` default `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | ` `[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps(long))`(long streamSize) ` Returns a stream producing the given`streamSize`number of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                               |
| ` default `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | ` `[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps())`() ` Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                                                                 |
| ` static `[RandomGenerator.JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)                                             | ` `[of](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#of(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` name) ` Returns an instance of[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)that utilizes the`name`[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms). |
| ` default `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | ` `[rngs](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#rngs(long))`(long streamSize) ` Returns a stream producing the given`streamSize`number of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                                 |
| ` default `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | ` `[rngs](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#rngs())`() ` Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                                                                   |

| ### Inherited methods |
|-----------------------|---|
| From interface` `[java.util.random.RandomGenerator.StreamableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator)` ` |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` static `[RandomGenerator.StreamableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator)                                          | ` `[of](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator#of(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` name) ` Returns an instance of[StreamableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator)that utilizes the`name`[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms). | | ` default `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>`  | ` `[rngs](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator#rngs(long))`(long streamSize) ` Returns an effectively unlimited stream of objects, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                                                                               | | ` abstract `[Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | ` `[rngs](https://developer.android.com/reference/java/util/random/RandomGenerator.StreamableGenerator#rngs())`() ` Returns an effectively unlimited stream of objects, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.                                                                                                                                                                  | ||
| From interface` `[java.util.random.RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)` ` |-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` default `[DoubleStream](https://developer.android.com/reference/java/util/stream/DoubleStream)      | ` `[doubles](https://developer.android.com/reference/java/util/random/RandomGenerator#doubles(long,%20double,%20double))`(long streamSize, double randomNumberOrigin, double randomNumberBound) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`double`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                             | | ` default `[DoubleStream](https://developer.android.com/reference/java/util/stream/DoubleStream)      | ` `[doubles](https://developer.android.com/reference/java/util/random/RandomGenerator#doubles(long))`(long streamSize) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`double`values.                                                                                                                                                                                                        | | ` default `[DoubleStream](https://developer.android.com/reference/java/util/stream/DoubleStream)      | ` `[doubles](https://developer.android.com/reference/java/util/random/RandomGenerator#doubles())`() ` Returns an effectively unlimited stream of pseudorandomly chosen`double`values.                                                                                                                                                                                                                                          | | ` default `[DoubleStream](https://developer.android.com/reference/java/util/stream/DoubleStream)      | ` `[doubles](https://developer.android.com/reference/java/util/random/RandomGenerator#doubles(double,%20double))`(double randomNumberOrigin, double randomNumberBound) ` Returns an effectively unlimited stream of pseudorandomly chosen`double`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                                                                     | | ` static `[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator) | ` `[getDefault](https://developer.android.com/reference/java/util/random/RandomGenerator#getDefault())`() ` Returns a[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)meeting the minimal requirement of having an[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms)whose state bits are greater than or equal 64.                     | | ` default `[IntStream](https://developer.android.com/reference/java/util/stream/IntStream)            | ` `[ints](https://developer.android.com/reference/java/util/random/RandomGenerator#ints(long))`(long streamSize) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`int`values.                                                                                                                                                                                                                 | | ` default `[IntStream](https://developer.android.com/reference/java/util/stream/IntStream)            | ` `[ints](https://developer.android.com/reference/java/util/random/RandomGenerator#ints(int,%20int))`(int randomNumberOrigin, int randomNumberBound) ` Returns an effectively unlimited stream of pseudorandomly chosen`int`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                                                                                          | | ` default `[IntStream](https://developer.android.com/reference/java/util/stream/IntStream)            | ` `[ints](https://developer.android.com/reference/java/util/random/RandomGenerator#ints())`() ` Returns an effectively unlimited stream of pseudorandomly chosen`int`values.                                                                                                                                                                                                                                                   | | ` default `[IntStream](https://developer.android.com/reference/java/util/stream/IntStream)            | ` `[ints](https://developer.android.com/reference/java/util/random/RandomGenerator#ints(long,%20int,%20int))`(long streamSize, int randomNumberOrigin, int randomNumberBound) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`int`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                                                  | | ` default boolean`                                                                                    | ` `[isDeprecated](https://developer.android.com/reference/java/util/random/RandomGenerator#isDeprecated())`() ` Return true if the implementation of RandomGenerator (algorithm) has been marked for deprecation.                                                                                                                                                                                                              | | ` default `[LongStream](https://developer.android.com/reference/java/util/stream/LongStream)          | ` `[longs](https://developer.android.com/reference/java/util/random/RandomGenerator#longs(long))`(long streamSize) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`long`values.                                                                                                                                                                                                              | | ` default `[LongStream](https://developer.android.com/reference/java/util/stream/LongStream)          | ` `[longs](https://developer.android.com/reference/java/util/random/RandomGenerator#longs())`() ` Returns an effectively unlimited stream of pseudorandomly chosen`long`values.                                                                                                                                                                                                                                                | | ` default `[LongStream](https://developer.android.com/reference/java/util/stream/LongStream)          | ` `[longs](https://developer.android.com/reference/java/util/random/RandomGenerator#longs(long,%20long))`(long randomNumberOrigin, long randomNumberBound) ` Returns an effectively unlimited stream of pseudorandomly chosen`long`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                                                                                   | | ` default `[LongStream](https://developer.android.com/reference/java/util/stream/LongStream)          | ` `[longs](https://developer.android.com/reference/java/util/random/RandomGenerator#longs(long,%20long,%20long))`(long streamSize, long randomNumberOrigin, long randomNumberBound) ` Returns a stream producing the given`streamSize`number of pseudorandomly chosen`long`values, where each value is between the specified origin (inclusive) and the specified bound (exclusive).                                           | | ` default boolean`                                                                                    | ` `[nextBoolean](https://developer.android.com/reference/java/util/random/RandomGenerator#nextBoolean())`() ` Returns a pseudorandomly chosen`boolean`value.                                                                                                                                                                                                                                                                   | | ` default void`                                                                                       | ` `[nextBytes](https://developer.android.com/reference/java/util/random/RandomGenerator#nextBytes(byte[]))`(byte[] bytes) ` Fills a user-supplied byte array with generated byte values pseudorandomly chosen uniformly from the range of values between -128 (inclusive) and 127 (inclusive).                                                                                                                                 | | ` default double`                                                                                     | ` `[nextDouble](https://developer.android.com/reference/java/util/random/RandomGenerator#nextDouble())`() ` Returns a pseudorandom`double`value between zero (inclusive) and one (exclusive).                                                                                                                                                                                                                                  | | ` default double`                                                                                     | ` `[nextDouble](https://developer.android.com/reference/java/util/random/RandomGenerator#nextDouble(double))`(double bound) ` Returns a pseudorandomly chosen`double`value between zero (inclusive) and the specified bound (exclusive).                                                                                                                                                                                       | | ` default double`                                                                                     | ` `[nextDouble](https://developer.android.com/reference/java/util/random/RandomGenerator#nextDouble(double,%20double))`(double origin, double bound) ` Returns a pseudorandomly chosen`double`value between the specified origin (inclusive) and the specified bound (exclusive).                                                                                                                                              | | ` default double`                                                                                     | ` `[nextExponential](https://developer.android.com/reference/java/util/random/RandomGenerator#nextExponential())`() ` Returns a nonnegative`double`value pseudorandomly chosen from an exponential distribution whose mean is 1.                                                                                                                                                                                               | | ` default float`                                                                                      | ` `[nextFloat](https://developer.android.com/reference/java/util/random/RandomGenerator#nextFloat(float,%20float))`(float origin, float bound) ` Returns a pseudorandomly chosen`float`value between the specified origin (inclusive) and the specified bound (exclusive).                                                                                                                                                     | | ` default float`                                                                                      | ` `[nextFloat](https://developer.android.com/reference/java/util/random/RandomGenerator#nextFloat())`() ` Returns a pseudorandom`float`value between zero (inclusive) and one (exclusive).                                                                                                                                                                                                                                     | | ` default float`                                                                                      | ` `[nextFloat](https://developer.android.com/reference/java/util/random/RandomGenerator#nextFloat(float))`(float bound) ` Returns a pseudorandomly chosen`float`value between zero (inclusive) and the specified bound (exclusive).                                                                                                                                                                                            | | ` default double`                                                                                     | ` `[nextGaussian](https://developer.android.com/reference/java/util/random/RandomGenerator#nextGaussian(double,%20double))`(double mean, double stddev) ` Returns a`double`value pseudorandomly chosen from a Gaussian (normal) distribution with a mean and standard deviation specified by the arguments.                                                                                                                    | | ` default double`                                                                                     | ` `[nextGaussian](https://developer.android.com/reference/java/util/random/RandomGenerator#nextGaussian())`() ` Returns a`double`value pseudorandomly chosen from a Gaussian (normal) distribution whose mean is 0 and whose standard deviation is 1.                                                                                                                                                                          | | ` default int`                                                                                        | ` `[nextInt](https://developer.android.com/reference/java/util/random/RandomGenerator#nextInt(int,%20int))`(int origin, int bound) ` Returns a pseudorandomly chosen`int`value between the specified origin (inclusive) and the specified bound (exclusive).                                                                                                                                                                   | | ` default int`                                                                                        | ` `[nextInt](https://developer.android.com/reference/java/util/random/RandomGenerator#nextInt())`() ` Returns a pseudorandomly chosen`int`value.                                                                                                                                                                                                                                                                               | | ` default int`                                                                                        | ` `[nextInt](https://developer.android.com/reference/java/util/random/RandomGenerator#nextInt(int))`(int bound) ` Returns a pseudorandomly chosen`int`value between zero (inclusive) and the specified bound (exclusive).                                                                                                                                                                                                      | | ` default long`                                                                                       | ` `[nextLong](https://developer.android.com/reference/java/util/random/RandomGenerator#nextLong(long,%20long))`(long origin, long bound) ` Returns a pseudorandomly chosen`long`value between the specified origin (inclusive) and the specified bound (exclusive).                                                                                                                                                            | | ` default long`                                                                                       | ` `[nextLong](https://developer.android.com/reference/java/util/random/RandomGenerator#nextLong(long))`(long bound) ` Returns a pseudorandomly chosen`long`value between zero (inclusive) and the specified bound (exclusive).                                                                                                                                                                                                 | | ` abstract long`                                                                                      | ` `[nextLong](https://developer.android.com/reference/java/util/random/RandomGenerator#nextLong())`() ` Returns a pseudorandomly chosen`long`value.                                                                                                                                                                                                                                                                            | | ` static `[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator) | ` `[of](https://developer.android.com/reference/java/util/random/RandomGenerator#of(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` name) ` Returns an instance of[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)that utilizes the`name`[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms). | ||

## Public methods

### copy

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract RandomGenerator.JumpableGenerator copy ()
```

Returns a new generator whose internal state is an exact copy of this generator (therefore their future behavior should be identical if subjected to the same series of operations).

<br />

|                                                                                        Returns                                                                                        ||
|---------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [RandomGenerator.JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator) | a new object that is a copy of this generator <br /> |

### copyAndJump

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public RandomGenerator copyAndJump ()
```

Copy this generator, jump this generator forward, then return the copy.

<br />

##### Implementation Requirements:

- The default implementation copies this, jumps and then returns the copy.

|                                                                           Returns                                                                            ||
|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
| [RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator) | a copy of this generator object before the jump occurred <br /> |

### jump

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract void jump ()
```

Alter the state of this pseudorandom number generator so as to jump forward a large, fixed distance (typically 2^64^or more) within its state cycle.

<br />

### jumpDistance

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract double jumpDistance ()
```

Returns the distance by which the[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() method will jump forward within the state cycle of this generator object.

<br />

|                            Returns                             ||
|----------|------------------------------------------------------|
| `double` | the default jump distance (as a`double`value) <br /> |

### jumps

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Stream<RandomGenerator> jumps (long streamSize)
```

Returns a stream producing the given`streamSize`number of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.

<br />

##### Implementation Requirements:

- The default implementation produces a sequential stream that repeatedly calls[copy](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#copy())() and[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() on this generator, and the copies become the generators produced by the stream.

|                            Parameters                             ||
|--------------|-----------------------------------------------------|
| `streamSize` | `long`: the number of generators to generate <br /> |

|                                                                                                                                                            Returns                                                                                                                                                            ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | a stream of objects that implement the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface <br /> |

|                                                                 Throws                                                                  ||
|--------------------------------------------------------------------------------------------------------|---------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`streamSize`is less than zero |

### jumps

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Stream<RandomGenerator> jumps ()
```

Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface.

<br />

##### Implementation Note:

- It is permitted to implement this method in a manner equivalent to[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps(long))([Long.MAX_VALUE](https://developer.android.com/reference/java/lang/Long#MAX_VALUE)).  

##### Implementation Requirements:

- The default implementation produces a sequential stream that repeatedly calls[copy](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#copy())() and[jump](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jump())() on this generator, and the copies become the generators produced by the stream.

|                                                                                                                                                            Returns                                                                                                                                                            ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | a stream of objects that implement the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface <br /> |

### of

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static RandomGenerator.JumpableGenerator of (String name)
```

Returns an instance of[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator)that utilizes the`name`[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms).

<br />

|                                                                        Parameters                                                                        ||
|--------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| `name` | `String`: Name of random number generator[algorithm](https://developer.android.com/reference/java/util/random/package-summary#algorithms) <br /> |

|                                                                                                                                Returns                                                                                                                                ||
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| [RandomGenerator.JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator) | An instance of[JumpableGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator) <br /> |

|                                                                   Throws                                                                    ||
|--------------------------------------------------------------------------------------------------------|-------------------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)         | if name is null                     |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if the named algorithm is not found |

### rngs

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Stream<RandomGenerator> rngs (long streamSize)
```

Returns a stream producing the given`streamSize`number of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface. Ideally the generators in the stream will appear to be statistically independent.

<br />

##### Implementation Requirements:

- The default implementation calls[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps(long))(streamSize).

|                            Parameters                             ||
|--------------|-----------------------------------------------------|
| `streamSize` | `long`: the number of generators to generate <br /> |

|                                                                                                                                                            Returns                                                                                                                                                            ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | a stream of objects that implement the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface <br /> |

|                                                                 Throws                                                                  ||
|--------------------------------------------------------------------------------------------------------|---------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`streamSize`is less than zero |

### rngs

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Stream<RandomGenerator> rngs ()
```

Returns an effectively unlimited stream of new pseudorandom number generators, each of which implements the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface. Ideally the generators in the stream will appear to be statistically independent.

<br />

##### Implementation Requirements:

- The default implementation calls[jumps](https://developer.android.com/reference/java/util/random/RandomGenerator.JumpableGenerator#jumps())().

|                                                                                                                                                            Returns                                                                                                                                                            ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [Stream](https://developer.android.com/reference/java/util/stream/Stream)`<`[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)`>` | a stream of objects that implement the[RandomGenerator](https://developer.android.com/reference/java/util/random/RandomGenerator)interface <br /> |