モジュール java.base
パッケージ java.util.concurrent

クラスThreadLocalRandom

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(...) (ここで、XIntLongなど)の形式にするようにしてください。 すべての使用方法がこの形式である場合、誤って複数のスレッドでThreadLocalRandomを共有することはできません。

このクラスはまた、追加の一般的に使用される制約付きランダム生成メソッドも提供します。

ThreadLocalRandomのインスタンスにはセキュアな暗号化が施されていません。 セキュリティに依存するアプリケーションでは、かわりにSecureRandomの使用を検討してください。 また、システム・プロパティjava.util.secureRandomSeedtrueに設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。

導入されたバージョン:
1.7
関連項目:
直列化された形式
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    static ThreadLocalRandom current()
    現在のスレッドのThreadLocalRandomを返します。
    DoubleStream doubles()
    0(含む)から1(含まない)までの擬似乱数 double値を含む、事実上無制限のストリームを返します。
    DoubleStream doubles​(double randomNumberOrigin, double randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数 double値を含む、事実上無制限のストリームを返します。
    DoubleStream doubles​(long streamSize)
    0(含む)から1(含まない)までの擬似乱数double値を、指定されたstreamSize数だけ生成するストリームを返します。
    DoubleStream doubles​(long streamSize, double randomNumberOrigin, double randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数double値を、指定されたstreamSize数だけ生成するストリームを返します。
    IntStream ints()
    擬似乱数int値を含む、事実上無制限のストリームを返します。
    IntStream ints​(int randomNumberOrigin, int randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数 int値を含む、事実上無制限のストリームを返します。
    IntStream ints​(long streamSize)
    擬似乱数int値を、指定されたstreamSize数だけ生成するストリームを返します。
    IntStream ints​(long streamSize, int randomNumberOrigin, int randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数int値を、指定されたstreamSize数だけ生成するストリームを返します。
    LongStream longs()
    擬似乱数long値を含む、事実上無制限のストリームを返します。
    LongStream longs​(long streamSize)
    擬似乱数long値を、指定されたstreamSize数だけ生成するストリームを返します。
    LongStream longs​(long randomNumberOrigin, long randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数 long値を含む、事実上無制限のストリームを返します。
    LongStream longs​(long streamSize, long randomNumberOrigin, long randomNumberBound)
    指定された起点(含む)と境界(含まない)に準拠した擬似乱数longを、指定されたstreamSize数だけ生成するストリームを返します。
    protected int next​(int bits)
    示された下位ビット数の擬似乱数を生成します。
    boolean nextBoolean()
    擬似乱数のboolean値を返します。
    double nextDouble()
    0 (これを含む)から1 (これを含まない)までの、擬似乱数のdouble値を返します。
    double nextDouble​(double bound)
    0.0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数のdouble値を返します。
    double nextDouble​(double origin, double bound)
    指定された起点(これを含む)から限界(これを含まない)までの範囲で、擬似乱数のdouble値を返します。
    float nextFloat()
    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

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • メソッドの詳細

    • current

      public static ThreadLocalRandom current()
      現在のスレッドのThreadLocalRandomを返します。
      戻り値:
      現在のスレッドのThreadLocalRandom
    • setSeed

      public void setSeed​(long seed)
      UnsupportedOperationExceptionをスローします。 このジェネレータでのシードの設定はサポートされていません。
      オーバーライド:
      setSeed、クラス: Random
      パラメータ:
      seed - 初期シード
      例外:
      UnsupportedOperationException - 常時
    • next

      protected int next​(int bits)
      示された下位ビット数の擬似乱数を生成します。 このクラスはサブクラスを持たないため、このメソッドは呼び出すことも、上書きすることもできません。
      オーバーライド:
      next、クラス: Random
      パラメータ:
      bits - ランダム・ビット
      戻り値:
      この乱数ジェネレータのシーケンスに基づく次の擬似乱数値
    • nextInt

      public int nextInt()
      擬似乱数のint値を返します。
      オーバーライド:
      nextInt、クラス: Random
      戻り値:
      擬似乱数の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 - originboundより大きいか等しい場合
    • nextLong

      public long nextLong()
      擬似乱数のlong値を返します。
      オーバーライド:
      nextLong、クラス: Random
      戻り値:
      擬似乱数の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 - originboundより大きいか等しい場合
    • 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 - originboundより大きいか等しい場合
    • nextBoolean

      public boolean nextBoolean()
      擬似乱数のboolean値を返します。
      オーバーライド:
      nextBoolean、クラス: Random
      戻り値:
      擬似乱数のboolean
    • nextFloat

      public float nextFloat()
      0(これを含む)から1(これを含まない)までの範囲で、擬似乱数のfloat値を返します。
      オーバーライド:
      nextFloat、クラス: Random
      戻り値:
      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、クラス: Random
      実装上のノート:
      このメソッドは、 ints(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数int値のストリーム
      導入されたバージョン:
      1.8
    • ints

      public IntStream ints​(long streamSize, int randomNumberOrigin, int randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数int値を、指定されたstreamSize数だけ生成するストリームを返します。
      オーバーライド:
      ints、クラス: Random
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      1.8
    • ints

      public IntStream ints​(int randomNumberOrigin, int randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数 int値を含む、事実上無制限のストリームを返します。
      オーバーライド:
      ints、クラス: Random
      実装上のノート:
      このメソッドは、 ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      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、クラス: Random
      実装上のノート:
      このメソッドは、 longs(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数long値のストリーム
      導入されたバージョン:
      1.8
    • longs

      public LongStream longs​(long streamSize, long randomNumberOrigin, long randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数longを、指定されたstreamSize数だけ生成するストリームを返します。
      オーバーライド:
      longs、クラス: Random
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      1.8
    • longs

      public LongStream longs​(long randomNumberOrigin, long randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数 long値を含む、事実上無制限のストリームを返します。
      オーバーライド:
      longs、クラス: Random
      実装上のノート:
      このメソッドは、 longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      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、クラス: Random
      実装上のノート:
      このメソッドは、 doubles(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数double値のストリーム
      導入されたバージョン:
      1.8
    • doubles

      public DoubleStream doubles​(long streamSize, double randomNumberOrigin, double randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数double値を、指定されたstreamSize数だけ生成するストリームを返します。
      オーバーライド:
      doubles、クラス: Random
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      1.8
    • doubles

      public DoubleStream doubles​(double randomNumberOrigin, double randomNumberBound)
      指定された起点(含む)と境界(含まない)に準拠した擬似乱数 double値を含む、事実上無制限のストリームを返します。
      オーバーライド:
      doubles、クラス: Random
      実装上のノート:
      このメソッドは、 doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合
      導入されたバージョン:
      1.8