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

インタフェースRandomGenerator

既知のすべてのサブインタフェース:
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
既知のすべての実装クラス:
Random, SecureRandom, SplittableRandom, ThreadLocalRandom

public interface RandomGenerator
RandomGeneratorインタフェースは、数値(またはブール値)のランダムまたは(大抵)擬似乱数シーケンスを生成するオブジェクトに共通プロトコルを提供するように設計されています。 このような順序は、1つの擬似乱数的に選択した値を戻すメソッドを繰り返し起動するか、擬似乱数的に選択した値のストリームを戻すメソッドを起動することによって取得できます。

暗黙的にまたは明示的に指定された値の範囲を指定すると、各値はその範囲から独立して選択されるのが理想的です。 実際には、ある程度の近似で独立性と均一性を決める必要がある場合があります。

intlongおよびbooleanの値の場合、範囲を明示的に指定しない場合、範囲には、型の使用可能なすべての値が含まれます。 floatおよびdouble値の場合、最初に、値が常に0.0 (inclusive)と1.0 (exclusive)の間の2つのw値のセットから均一に選択されます。ここで、wfloat値の場合はFloat.PRECISIONdouble値の場合はDouble.PRECISIONです。隣接値が2w (このセットは、0.0 (inclusive)と1.0 (exclusive)の間の「すべての表現可能な浮動小数点値」セットの「サブセット」であることに注意してください)によって異なるようにします。明示的な範囲が指定されている場合、選択した数値は計算的にスケーリングされ、その明示的な範囲からほぼ均一に選択されているように変換されます。

ストリームを戻す各メソッドは、それぞれの値のストリームを生成します。これは、単一の擬似乱数的に選択した値を返すメソッドの場合と同じ方法で選択されます。 たとえば、rRandomGeneratorが実装されている場合、メソッド・コールr.ints(100)は100 int値のストリームを返します。 これらは、かわりにr.nextInt()が100回呼び出された場合に返される値とまったく同じであるとはかぎりません。これは、ストリームの各値が同じ範囲から同じような擬似乱数的な方法で選択されることが保証されています。

擬似乱数アルゴリズムを使用してRandomGeneratorインタフェースを実装するオブジェクトはすべて、有限数の状態を含むとみなされます。 このようなオブジェクトを使用して擬似乱数的に選択した値を生成すると、現在の状態以外の情報を参照せずに、新しい状態を現在の状態の関数として計算することによってその状態が変更されます。 このようなオブジェクトの考えられる個別状態の数は、「ポイント」と呼ばれます。 (RandomGeneratorインタフェースの一部の実装は、擬似乱数ではなく本当にランダムな場合があります。たとえば、選択した値を導出する物理オブジェクトの統計動作に依存しています。 このような実装には固定期間がありません。)

ルールとして、RandomGeneratorインタフェースを実装するオブジェクトはスレッド・セーフである必要はありません。 マルチスレッド・アプリケーションでは、RandomGenerator.SplittableGeneratorまたはRandomGenerator.JumpableGeneratorインタフェースを実装するThreadLocalRandomまたは(大抵)擬似乱数ジェネレータを使用することをお薦めします。

RandomGeneratorを実装するオブジェクトは通常、暗号方式ではセキュアではありません。 かわりに、SecureRandomを使用して、セキュリティに敏感なアプリケーションで使用するために暗号化で保護された擬似乱数ジェネレータを取得することを検討してください。 ただし、SecureRandomRandomGeneratorインタフェースを実装するため、SecureRandomのインスタンスは、セキュアなジェネレータを必要としないアプリケーションの他のタイプの擬似乱数ジェネレータと同義で使用できます。

特に指定がないかぎり、メソッド引数にnullを使用するとNullPointerExceptionが発生します。

導入されたバージョン:
17