public final class SplittableRandom extends Object
SplittableRandom支持方法用于生产类型的伪随机数int , long和double具有类似用途作为类Random但在以下方面不同:
split()构造并返回与当前实例共享不可变状态的新SplitableRandom实例。 然而,以非常高的概率,由两个对象共同生成的值具有与使用单个SplittableRandom对象的单个线程生成相同数量的值相同的统计特性。 fork/join-style计算使用随机数可能包括以下形式的建设new Subtask(aSplittableRandom.split()).fork() 。 stream.parallel()模式下使用上述技术。 SplittableRandom的SplittableRandom不是加密安全的。 考虑在安全敏感的应用程序中使用SecureRandom。 此外,默认构造的实例不使用加密随机种子,除非88465688849997 java.util.secureRandomSeed设置为true 。
| Constructor and Description |
|---|
SplittableRandom()
创建一个新的SplittableRandom实例,可能会生成与当前程序中任何其他实例统计上独立的值序列;
并且通常可以在程序调用中变化。
|
SplittableRandom(long seed)
使用指定的初始种子创建一个新的SplittableRandom实例。
|
| Modifier and Type | Method and Description |
|---|---|
DoubleStream |
doubles()
返回一个有效的无限流的伪随机 double值从该发生器和/或一个从它分裂;
每个值在零(包括)和一(独占)之间。
|
DoubleStream |
doubles(double randomNumberOrigin, double randomNumberBound)
返回一个有效的无限流的伪随机 double值从这个发生器和/或一个从它分裂;
每个值符合给定的起始(包括)和绑定(排他)。
|
DoubleStream |
doubles(long streamSize)
返回一个流,产生给定的 streamSize数double数值从该发生器和/或一个从它分裂;
每个值在零(包括)和一(独占)之间。
|
DoubleStream |
doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
返回一个流,产生给定的 streamSize数double值从该发生器和/或从它的一个分割;
每个值符合给定的起始(包括)和绑定(排他)。
|
IntStream |
ints()
返回一个有效的无限流的伪随机
int值从这个发生器和/或一个从它分裂。
|
IntStream |
ints(int randomNumberOrigin, int randomNumberBound)
返回一个有效的无限流的伪随机数 int从这个发生器和/或一个从它分裂的值;
每个值符合给定的起始(包括)和绑定(排他)。
|
IntStream |
ints(long streamSize)
返回一个流,产生给定的
streamSize数
int值从该发生器和/或从它的一个拆分。
|
IntStream |
ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
返回一个流,产生给定的 streamSize数量的伪随机int值来自该发生器和/或从其分离一个;
每个值符合给定的起始(包括)和绑定(排他)。
|
LongStream |
longs()
返回一个有效的无限流的伪随机
long值从该生成器和/或一个从它分割。
|
LongStream |
longs(long streamSize)
返回一个流,产生给定的
streamSize数
long值从该发生器和/或一个从它分裂。
|
LongStream |
longs(long randomNumberOrigin, long randomNumberBound)
返回一个有效的无限流的伪随机 long值从这个发生器和/或一个从它分裂;
每个值符合给定的起始(包括)和绑定(排他)。
|
LongStream |
longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
返回一个流,产生给定的 streamSize数long值从该发生器和/或一个从它分裂;
每个值符合给定的起始(包括)和绑定(排他)。
|
boolean |
nextBoolean()
返回一个伪
boolean值
boolean 。
|
double |
nextDouble()
返回零(包括)和一(独占)之间的伪
double值double。
|
double |
nextDouble(double bound)
返回0.0(含)和指定边界(排除)之间的伪随机
double值。
|
double |
nextDouble(double origin, double bound)
返回指定的起始(包括)和绑定(排除)之间的伪
double值double。
|
int |
nextInt()
返回一个伪
int值
int 。
|
int |
nextInt(int bound)
返回一个伪零符号
int之间的零(含)和指定的界限(排除)之间的值。
|
int |
nextInt(int origin, int bound)
返回指定的起始点(含)和指定的边界(排除)之间的伪
int值int。
|
long |
nextLong()
返回一个伪
long值
long 。
|
long |
nextLong(long bound)
返回零(含)和指定边界(排除)之间的伪
long值long。
|
long |
nextLong(long origin, long bound)
返回指定的起始点(包括)和指定的绑定(排除)之间的伪
long值long。
|
SplittableRandom |
split()
构造并返回一个新的SplittableRandom实例,与该实例共享不可变状态。
|
public SplittableRandom(long seed)
seed - 初始种子
public SplittableRandom()
public SplittableRandom split()
split()方法进一步拆分两个对象中的一个或两个,并且相同的预期统计属性适用于通过这种递归拆分构造的整个生成器集合。
public int nextInt()
int值
int 。
int值
public int nextInt(int bound)
int值。
bound - 上限(独占)。
必须是积极的。
int之间的零(包括)和绑定(独占)
IllegalArgumentException - 如果
bound
public int nextInt(int origin,
int bound)
int值int。
origin - 返回的最小值
bound - 上限(独占)
int值
IllegalArgumentException - 如果
origin大于等于
bound
public long nextLong()
long值
long 。
long值
public long nextLong(long bound)
long在零(含)和指定的界限(排除)之间的值。
bound - 上限(独占)。
必须是积极的。
long值
IllegalArgumentException - 如果
bound
public long nextLong(long origin,
long bound)
long值long。
origin - 返回的最小值
bound - 上限(独占)
long值
IllegalArgumentException - 如果
origin大于等于
bound
public double nextDouble()
double值。
double之间的零(含)和一(独占)
public double nextDouble(double bound)
double值。
bound - 上限(独占)。
必须是积极的。
double值
IllegalArgumentException - 如果
bound
public double nextDouble(double origin,
double bound)
double值double。
origin - 返回的最小值
bound - 上限(独占)
double值
IllegalArgumentException - 如果
origin大于或等于
bound
public boolean nextBoolean()
boolean值
boolean 。
boolean值
public IntStream ints(long streamSize)
streamSize数
int值从该发生器和/或一个从它分裂。
streamSize - 要生成的值的数量
int值
IllegalArgumentException - 如果
streamSize小于零
public IntStream ints()
int值从这个发生器和/或一个从它分裂。
ints(Long.MAX_VALUE) 。
int值
public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
streamSize数int值,该值来自该发生器和/或从其分离;
每个值符合给定的起始(包括)和绑定(排他)。
streamSize - 要生成的值的数量
randomNumberOrigin - 每个随机值的起点(含)
randomNumberBound - 每个随机值的绑定(排他)
int流(int),每个都有给定的来源(包括)和绑定(排他)
IllegalArgumentException - 如果
streamSize小于零,或
randomNumberOrigin大于或等于
randomNumberBound
public IntStream ints(int randomNumberOrigin, int randomNumberBound)
int值从这个发生器和/或一个从它分裂;
每个值符合给定的起始(包括)和绑定(排他)。
ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound) 。
randomNumberOrigin - 每个随机值的起点(含)
randomNumberBound - 每个随机值的绑定(排他)
int的流量
int ,每个都有给定的来源(包括)和绑定(排他)
IllegalArgumentException - 如果
randomNumberOrigin大于或等于
randomNumberBound
public LongStream longs(long streamSize)
streamSize数
long数值,来自该发生器和/或一次分割。
streamSize - 要生成的值的数量
long值
IllegalArgumentException - 如果
streamSize小于零
public LongStream longs()
long值,和/或从其中分离出一个值。
longs(Long.MAX_VALUE) 。
long值
public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
streamSize数long值,该值来自该发生器和/或从其分离;
每个值符合给定的起始(包括)和绑定(排他)。
streamSize - 要生成的值的数量
randomNumberOrigin - 每个随机值的起点(含)
randomNumberBound - 每个随机值的绑定(排他)
long流(long),每个都有给定的来源(包括)和绑定(独占)
IllegalArgumentException - 如果
streamSize小于零,或
randomNumberOrigin大于等于
randomNumberBound
public LongStream longs(long randomNumberOrigin, long randomNumberBound)
long值从这个发生器和/或一个从它分裂;
每个值符合给定的起始(包括)和绑定(排他)。
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound) 。
randomNumberOrigin - 每个随机值的起点(含)
randomNumberBound - 每个随机值的绑定(排他)
long流long,每个都有给定的起源(包括)和绑定(排他)
IllegalArgumentException - 如果
randomNumberOrigin大于等于
randomNumberBound
public DoubleStream doubles(long streamSize)
streamSize数double值,该值来自该发生器和/或从其分离;
每个值在零(包括)和一(独占)之间。
streamSize - 要生成的值的数量
double值
IllegalArgumentException - 如果
streamSize小于零
public DoubleStream doubles()
double值从这个发生器和/或一个从它分裂;
每个值在零(包括)和一(独占)之间。
doubles(Long.MAX_VALUE) 。
double值
public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
streamSize数量的伪double值double来自该发生器和/或从其double值;
每个值符合给定的起始(包括)和绑定(排他)。
streamSize - 要生成的值的数量
randomNumberOrigin - 每个随机值的起点(含)
randomNumberBound - 每个随机值的绑定(排他)
double流double,每个都有给定的来源(包括)和绑定(排他)
IllegalArgumentException - 如果
streamSize小于零
IllegalArgumentException - 如果
randomNumberOrigin大于或等于
randomNumberBound
public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
double值来自该发生器和/或一个从它分裂的值;
每个值符合给定的起始(包括)和绑定(排他)。
doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound) 。
randomNumberOrigin - 每个随机值的起始(含)
randomNumberBound - 每个随机值的绑定(排他)
double流double,每个都有给定的来源(包括)和绑定(排他)
IllegalArgumentException - 如果
randomNumberOrigin大于等于
randomNumberBound
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.