java.lang.Object
java.util.Random
java.util.concurrent.ThreadLocalRandom
- すべての実装されたインタフェース:
Serializable
public class ThreadLocalRandom extends Random
現在のスレッドから独立した隔離された乱数ジェネレータ。
Math
クラスによって使用されるグローバルなRandom
ジェネレータと同様に、ThreadLocalRandom
は、それ以外では変更できない内部的に生成されたシードで初期化されます。 該当する場合、並行プログラム内の共有されたRandom
オブジェクトではなくThreadLocalRandom
を使用すれば、通常、発生するオーバーヘッドや競合がはるかに少なくなります。 ThreadLocalRandom
の使用は、複数のタスク(たとえば、各ForkJoinTask
)がスレッド・プール内で並列に乱数を使用している場合に特に適しています。
このクラスの使用法は通常、ThreadLocalRandom.current().nextX(...)
(ここで、X
はInt
やLong
など)の形式にするようにしてください。 すべての使用方法がこの形式である場合、誤って複数のスレッドでThreadLocalRandom
を共有することはできません。
このクラスはまた、追加の一般的に使用される制約付きランダム生成メソッドも提供します。
ThreadLocalRandom
のインスタンスにはセキュアな暗号化が施されていません。 セキュリティに依存するアプリケーションでは、かわりにSecureRandom
の使用を検討してください。 また、システム・プロパティjava.util.secureRandomSeed
をtrue
に設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。
- 導入されたバージョン:
- 1.7
- 関連項目:
- 直列化された形式
-
メソッドのサマリー
修飾子と型メソッド説明static ThreadLocalRandom
current()
現在のスレッドのThreadLocalRandom
を返します。doubles()
0(含む)から1(含まない)までの擬似乱数double
値を含む、事実上無制限のストリームを返します。doubles(double randomNumberOrigin, double randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数double
値を含む、事実上無制限のストリームを返します。doubles(long streamSize)
0(含む)から1(含まない)までの擬似乱数double
値を、指定されたstreamSize
数だけ生成するストリームを返します。doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数double
値を、指定されたstreamSize
数だけ生成するストリームを返します。ints()
擬似乱数int
値を含む、事実上無制限のストリームを返します。ints(int randomNumberOrigin, int randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数int
値を含む、事実上無制限のストリームを返します。ints(long streamSize)
擬似乱数int
値を、指定されたstreamSize
数だけ生成するストリームを返します。ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数int
値を、指定されたstreamSize
数だけ生成するストリームを返します。longs()
擬似乱数long
値を含む、事実上無制限のストリームを返します。longs(long streamSize)
擬似乱数long
値を、指定されたstreamSize
数だけ生成するストリームを返します。longs(long randomNumberOrigin, long randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数long
値を含む、事実上無制限のストリームを返します。longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
指定された起点(含む)と境界(含まない)に準拠した擬似乱数long
を、指定されたstreamSize
数だけ生成するストリームを返します。protected int
next(int bits)
示された下位ビット数の擬似乱数を生成します。boolean
擬似乱数のboolean
値を返します。double
0 (これを含む)から1 (これを含まない)までの、擬似乱数のdouble
値を返します。double
nextDouble(double bound)
0.0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のdouble
値を返します。double
nextDouble(double origin, double bound)
指定された起点(これを含む)から限界(これを含まない)までの範囲で、擬似乱数のdouble
値を返します。float
0(これを含む)から1(これを含まない)までの範囲で、擬似乱数のfloat
値を返します。int
nextInt()
擬似乱数のint
値を返します。int
nextInt(int bound)
0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint
値を返します。int
nextInt(int origin, int bound)
指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint
値を返します。long
nextLong()
擬似乱数のlong
値を返します。long
nextLong(long bound)
0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong
値を返します。long
nextLong(long origin, long bound)
指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong
値を返します。void
setSeed(long seed)
UnsupportedOperationException
をスローします。クラス java.util.Randomで宣言されたメソッド
nextBytes, nextGaussian
-
メソッドの詳細
-
current
public static ThreadLocalRandom current()現在のスレッドのThreadLocalRandom
を返します。- 戻り値:
- 現在のスレッドの
ThreadLocalRandom
-
setSeed
public void setSeed(long seed)UnsupportedOperationException
をスローします。 このジェネレータでのシードの設定はサポートされていません。- オーバーライド:
setSeed
、クラス:Random
- パラメータ:
seed
- 初期シード- 例外:
UnsupportedOperationException
- 常時
-
next
protected int next(int bits)示された下位ビット数の擬似乱数を生成します。 このクラスはサブクラスを持たないため、このメソッドは呼び出すことも、上書きすることもできません。 -
nextInt
public int nextInt()擬似乱数のint
値を返します。 -
nextInt
public int nextInt(int bound)0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint
値を返します。- オーバーライド:
nextInt
、クラス:Random
- パラメータ:
bound
- 上限(含まない)。 正の値でなければならない- 戻り値:
- 0 (これを含む)から限界(これを含まない)までの、擬似乱数の
int
値 - 例外:
IllegalArgumentException
-bound
が正でない場合
-
nextInt
public int nextInt(int origin, int bound)指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint
値を返します。- パラメータ:
origin
- 返される最小の値bound
- 上限(含まない)- 戻り値:
- 起点(これを含む)から限界(これを含まない)までの、擬似乱数の
int
値 - 例外:
IllegalArgumentException
-origin
がbound
より大きいか等しい場合
-
nextLong
public long nextLong()擬似乱数のlong
値を返します。 -
nextLong
public long nextLong(long bound)0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong
値を返します。- パラメータ:
bound
- 上限(含まない)。 正の値でなければならない- 戻り値:
- 0 (これを含む)から限界(これを含まない)までの、擬似乱数の
long
値 - 例外:
IllegalArgumentException
-bound
が正でない場合
-
nextLong
public long nextLong(long origin, long bound)指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong
値を返します。- パラメータ:
origin
- 返される最小の値bound
- 上限(含まない)- 戻り値:
- 起点(これを含む)から限界(これを含まない)までの、擬似乱数の
long
値 - 例外:
IllegalArgumentException
-origin
がbound
より大きいか等しい場合
-
nextDouble
public double nextDouble()0 (これを含む)から1 (これを含まない)までの、擬似乱数のdouble
値を返します。- オーバーライド:
nextDouble
、クラス:Random
- 戻り値:
- 0 (これを含む)から1 (これを含まない)までの、擬似乱数の
double
値 - 関連項目:
Math.random()
-
nextDouble
public double nextDouble(double bound)0.0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のdouble
値を返します。- パラメータ:
bound
- 上限(含まない)。 正の値でなければならない- 戻り値:
- 0 (これを含む)から限界(これを含まない)までの、擬似乱数の
double
値 - 例外:
IllegalArgumentException
-bound
が正でない場合
-
nextDouble
public double nextDouble(double origin, double bound)指定された起点(これを含む)から限界(これを含まない)までの範囲で、擬似乱数のdouble
値を返します。- パラメータ:
origin
- 返される最小の値bound
- 上限(含まない)- 戻り値:
- 起点(これを含む)から限界(これを含まない)までの、擬似乱数の
double
値 - 例外:
IllegalArgumentException
-origin
がbound
より大きいか等しい場合
-
nextBoolean
public boolean nextBoolean()擬似乱数のboolean
値を返します。- オーバーライド:
nextBoolean
、クラス:Random
- 戻り値:
- 擬似乱数の
boolean
値
-
nextFloat
public float nextFloat()0(これを含む)から1(これを含まない)までの範囲で、擬似乱数のfloat
値を返します。 -
ints
public IntStream ints(long streamSize)擬似乱数int
値を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
ints
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数- 戻り値:
- 擬似乱数
int
値のストリーム - 例外:
IllegalArgumentException
-streamSize
が0未満の場合- 導入されたバージョン:
- 1.8
-
ints
public IntStream ints()擬似乱数int
値を含む、事実上無制限のストリームを返します。 -
ints
public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数int
値を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
ints
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
int
値のストリーム - 例外:
IllegalArgumentException
-streamSize
が0未満の場合、またはrandomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-
ints
public IntStream ints(int randomNumberOrigin, int randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数int
値を含む、事実上無制限のストリームを返します。- オーバーライド:
ints
、クラス:Random
- 実装上のノート:
- このメソッドは、
ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。 - パラメータ:
randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
int
値のストリーム - 例外:
IllegalArgumentException
-randomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-
longs
public LongStream longs(long streamSize)擬似乱数long
値を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
longs
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数- 戻り値:
- 擬似乱数
long
値のストリーム - 例外:
IllegalArgumentException
-streamSize
が0未満の場合- 導入されたバージョン:
- 1.8
-
longs
public LongStream longs()擬似乱数long
値を含む、事実上無制限のストリームを返します。 -
longs
public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数long
を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
longs
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
long
値のストリーム - 例外:
IllegalArgumentException
-streamSize
が0未満の場合、またはrandomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-
longs
public LongStream longs(long randomNumberOrigin, long randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数long
値を含む、事実上無制限のストリームを返します。- オーバーライド:
longs
、クラス:Random
- 実装上のノート:
- このメソッドは、
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。 - パラメータ:
randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
long
値のストリーム - 例外:
IllegalArgumentException
-randomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-
doubles
public DoubleStream doubles(long streamSize)0(含む)から1(含まない)までの擬似乱数double
値を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
doubles
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数- 戻り値:
double
値のストリーム- 例外:
IllegalArgumentException
-streamSize
が0未満の場合- 導入されたバージョン:
- 1.8
-
doubles
public DoubleStream doubles()0(含む)から1(含まない)までの擬似乱数double
値を含む、事実上無制限のストリームを返します。 -
doubles
public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数double
値を、指定されたstreamSize
数だけ生成するストリームを返します。- オーバーライド:
doubles
、クラス:Random
- パラメータ:
streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数
double
値のストリーム - 例外:
IllegalArgumentException
-streamSize
が0未満の場合、またはrandomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-
doubles
public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数double
値を含む、事実上無制限のストリームを返します。- オーバーライド:
doubles
、クラス:Random
- 実装上のノート:
- このメソッドは、
doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。 - パラメータ:
randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数
double
値のストリーム - 例外:
IllegalArgumentException
-randomNumberOrigin
がrandomNumberBound
以上の場合- 導入されたバージョン:
- 1.8
-