モジュール java.base
パッケージ 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をスローします。
    • メソッドの詳細

      • 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