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 ThreadLocalRandomcurrent()現在のスレッドのThreadLocalRandomを返します。DoubleStreamdoubles()0(含む)から1(含まない)までの擬似乱数double値を含む、事実上無制限のストリームを返します。DoubleStreamdoubles(double randomNumberOrigin, double randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数double値を含む、事実上無制限のストリームを返します。DoubleStreamdoubles(long streamSize)0(含む)から1(含まない)までの擬似乱数double値を、指定されたstreamSize数だけ生成するストリームを返します。DoubleStreamdoubles(long streamSize, double randomNumberOrigin, double randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数double値を、指定されたstreamSize数だけ生成するストリームを返します。IntStreamints()擬似乱数int値を含む、事実上無制限のストリームを返します。IntStreamints(int randomNumberOrigin, int randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数int値を含む、事実上無制限のストリームを返します。IntStreamints(long streamSize)擬似乱数int値を、指定されたstreamSize数だけ生成するストリームを返します。IntStreamints(long streamSize, int randomNumberOrigin, int randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数int値を、指定されたstreamSize数だけ生成するストリームを返します。LongStreamlongs()擬似乱数long値を含む、事実上無制限のストリームを返します。LongStreamlongs(long streamSize)擬似乱数long値を、指定されたstreamSize数だけ生成するストリームを返します。LongStreamlongs(long randomNumberOrigin, long randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数long値を含む、事実上無制限のストリームを返します。LongStreamlongs(long streamSize, long randomNumberOrigin, long randomNumberBound)指定された起点(含む)と境界(含まない)に準拠した擬似乱数longを、指定されたstreamSize数だけ生成するストリームを返します。protected intnext(int bits)示された下位ビット数の擬似乱数を生成します。booleannextBoolean()擬似乱数のboolean値を返します。doublenextDouble()0 (これを含む)から1 (これを含まない)までの、擬似乱数のdouble値を返します。doublenextDouble(double bound)0.0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のdouble値を返します。doublenextDouble(double origin, double bound)指定された起点(これを含む)から限界(これを含まない)までの範囲で、擬似乱数のdouble値を返します。floatnextFloat()0(これを含む)から1(これを含まない)までの範囲で、擬似乱数のfloat値を返します。intnextInt()擬似乱数のint値を返します。intnextInt(int bound)0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint値を返します。intnextInt(int origin, int bound)指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のint値を返します。longnextLong()擬似乱数のlong値を返します。longnextLong(long bound)0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong値を返します。longnextLong(long origin, long bound)指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のlong値を返します。voidsetSeed(long seed)UnsupportedOperationExceptionをスローします。
-
メソッドの詳細
-
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
-