java.lang.Object
java.util.random.RandomGeneratorFactory<T>
public final class RandomGeneratorFactory<T extends RandomGenerator> extends Object
これは、特定のalgorithmの複数の乱数ジェネレータを生成するためのファクトリ・クラスです。 
RandomGeneratorFactoryには、乱数ジェネレータ・アルゴリズムを選択するメソッドも用意されています。 特定のRandomGeneratorFactoryは、of(String)メソッドを使用して配置できます。引数文字列は、必要なalgorithmの名前です。 メソッドall()は、タスクに適したRandomGeneratorFactoryを検索できる、すべての使用可能なRandomGeneratorFactorysの空でないStreamを生成します。 必要な初期シードのタイプに応じて、RandomGeneratorインスタンスを作成するメソッドは3つあります。create(long)は長いシード作成に使用され、create(byte[])はバイト[]シード作成に使用され、create()はランダム・シード作成に使用されます。 例; 
 
    RandomGeneratorFactory<RandomGenerator> factory = RandomGeneratorFactory.of("Random");
     for (int i = 0; i < 10; i++) {
         new Thread(() -> {
             RandomGenerator random = factory.create(100L);
             System.out.println(random.nextDouble());
         }).start();
     }
 
 RandomGeneratorFactoryには、ジェネレータの属性(またはプロパティ)を説明するメソッドも用意されており、乱数ジェネレータ「アルゴリズム」の選択に使用できます。 これらのメソッドは通常、all()と組み合わせて使用します。 この例では、コードによって、RandomGeneratorsを生成するRandomGeneratorFactoryが最大数の状態ビットで特定されます。 
 
     RandomGeneratorFactory<RandomGenerator> best = RandomGeneratorFactory.all()
         .sorted(Comparator.comparingInt(RandomGenerator::stateBits).reversed())
         .findFirst()
         .orElse(RandomGeneratorFactory.of("Random"));
     System.out.println(best.name() + " in " + best.group() + " was selected");
     RandomGenerator rng = best.create();
     System.out.println(rng.nextLong());
 - 導入されたバージョン:
 - 17
 - 関連項目:
 
- 
メソッドのサマリー
修飾子と型メソッド説明static Stream<RandomGeneratorFactory<RandomGenerator>>all()使用可能なRandomGeneratorFactory(s)の空でないストリームを返します。create()選択したalgorithmに基づいてRandomGeneratorのインスタンスを作成します。create(byte[] seed) 開始バイトの[]シードを指定するalgorithmに基づいて、RandomGeneratorのインスタンスを作成します。create(long seed) 開始の長いシードを提供するalgorithmに基づいてRandomGeneratorのインスタンスを作成します。intalgorithmの等分布を返します。状態ビットが64以上のアルゴリズムを持つ最小要件を満たすRandomGeneratorFactoryを返します。group()乱数ジェネレータで使用されるalgorithmのグループ名を返します。booleanランダム・ジェネレータが任意に指定の距離ポイントをステート・サイクル内でジャンプできる場合はtrueを返します。booleanRandomGenerator (algorithm)の実装が非推奨としてマークされている場合はtrueを返します。booleanランダム・ジェネレータがハードウェア・デバイス(HRNG)を使用してエントロピ入力を生成する場合は、trueを返します。booleanランダム・ジェネレータがステート・サイクルの指定した遠い点にジャンプできる場合はtrueを返します。booleanランダム・ジェネレータがジャンプ可能であり、ステート・サイクルの非常に遠いポイントに飛ぶことができる場合はtrueを返します。booleanランダム・ジェネレータを同じプロパティを持つ別のオブジェクトにクローニングできるが、状態サイクルでさらに配置できる場合は、trueを返します。booleanランダム・ジェネレータが算術algorithmを使用して計算され、統計的に決定的である場合、trueを返します。boolean外部ソースまたはエントロピ・ソースを入力として使用してランダム・ジェネレータを計算する場合は、trueを返します。booleanランダム・ジェネレータを使用して乱数のStreamsを作成できる場合はtrueを返します。name()乱数ジェネレータで使用されるalgorithmの名前を返します。static <T extends RandomGenerator>
RandomGeneratorFactory<T>namealgorithmを使用するRandomGeneratorのインスタンスを生成できるRandomGeneratorFactoryを返します。period()乱数ジェネレータで使用されるalgorithmの期間を返します。intシードの状態を維持するためにalgorithmによって使用されるビット数を返します。 
- 
メソッドの詳細
- 
of
public static <T extends RandomGenerator> RandomGeneratorFactory<T> of(String name) namealgorithmを使用するRandomGeneratorのインスタンスを生成できるRandomGeneratorFactoryを返します。- 実装要件:
 - 可用性は、サービス・プロバイダAPIを使用してRandomGeneratorFactoryによって決定され、RandomGeneratorインタフェースの実装が特定されます。
 - 型パラメータ:
 T- 生成するRandomGeneratorのサブインタフェース- パラメータ:
 name- 乱数ジェネレータの名前algorithm- 戻り値:
 RandomGeneratorのRandomGeneratorFactory- 例外:
 NullPointerException- nameがnullである場合IllegalArgumentException- 指定されたアルゴリズムが見つからない場合
 - 
getDefault
public static RandomGeneratorFactory<RandomGenerator> getDefault()状態ビットが64以上のアルゴリズムを持つ最小要件を満たすRandomGeneratorFactoryを返します。- 実装要件:
 - アルゴリズムは時間の経過とともに向上するため、このメソッドが時間の経過に伴って同じアルゴリズムを返す保証はありません。
 - 戻り値:
 - a 
RandomGeneratorFactory 
 - 
all
public static Stream<RandomGeneratorFactory<RandomGenerator>> all()使用可能なRandomGeneratorFactory(s)の空でないストリームを返します。 非推奨としてマークされたRandomGeneratorsは、結果に含まれません。- 実装要件:
 - 可用性は、サービス・プロバイダAPIを使用してRandomGeneratorFactoryによって決定され、RandomGeneratorインタフェースの実装が特定されます。
 - 戻り値:
 - 使用可能なすべての
RandomGeneratorFactory(s)の空ではないストリーム。 
 - 
name
public String name()乱数ジェネレータで使用されるalgorithmの名前を返します。- 戻り値:
 - algorithmの名前。
 
 - 
group
public String group()乱数ジェネレータで使用されるalgorithmのグループ名を返します。- 戻り値:
 - algorithmのグループ名。
 
 - 
stateBits
public int stateBits()シードの状態を維持するためにalgorithmによって使用されるビット数を返します。- 戻り値:
 - シードの状態を維持するためにalgorithmによって使用されるビット数。
 
 - 
equidistribution
public int equidistribution()algorithmの等分布を返します。- 戻り値:
 - algorithmの等分布。
 
 - 
period
public BigInteger period()乱数ジェネレータで使用されるalgorithmの期間を返します。 期間が不確定の場合、BigInteger.ZEROを返します。- 戻り値:
 - BigInteger period.
 
 - 
isStatistical
public boolean isStatistical()ランダム・ジェネレータが算術algorithmを使用して計算され、統計的に決定的である場合、trueを返します。- 戻り値:
 - ランダム・ジェネレータが統計の場合はtrue。
 
 - 
isStochastic
public boolean isStochastic()外部ソースまたはエントロピ・ソースを入力として使用してランダム・ジェネレータを計算する場合は、trueを返します。- 戻り値:
 - ランダム・ジェネレータが確率の場合にtrue。
 
 - 
isHardware
public boolean isHardware()ランダム・ジェネレータがハードウェア・デバイス(HRNG)を使用してエントロピ入力を生成する場合は、trueを返します。- 戻り値:
 - ランダム・ジェネレータがハードウェアによって生成される場合はtrue。
 
 - 
isArbitrarilyJumpable
public boolean isArbitrarilyJumpable()ランダム・ジェネレータが任意に指定の距離ポイントをステート・サイクル内でジャンプできる場合はtrueを返します。- 戻り値:
 - ランダム・ジェネレータがジャンプ可能な場合はtrue。
 
 - 
isJumpable
public boolean isJumpable()ランダム・ジェネレータがステート・サイクルの指定した遠い点にジャンプできる場合はtrueを返します。- 戻り値:
 - ランダム・ジェネレータがジャンプ可能な場合はtrue。
 
 - 
isLeapable
public boolean isLeapable()ランダム・ジェネレータがジャンプ可能であり、ステート・サイクルの非常に遠いポイントに飛ぶことができる場合はtrueを返します。- 戻り値:
 - ランダム・ジェネレータがうるさぎの場合はtrue。
 
 - 
isSplittable
public boolean isSplittable()ランダム・ジェネレータを同じプロパティを持つ別のオブジェクトにクローニングできるが、状態サイクルでさらに配置できる場合は、trueを返します。- 戻り値:
 - ランダム・ジェネレータが分割可能な場合はtrue。
 
 - 
isStreamable
public boolean isStreamable()ランダム・ジェネレータを使用して乱数のStreamsを作成できる場合はtrueを返します。- 戻り値:
 - ランダム・ジェネレータがストリーム可能な場合はtrue。
 
 - 
isDeprecated
public boolean isDeprecated()RandomGenerator (algorithm)の実装が非推奨としてマークされている場合はtrueを返します。- 実装上のノート:
 - 乱数ジェネレータ・アルゴリズムが何度も進化し、新しいアルゴリズムが導入され、古いアルゴリズムが起動しなくなります。 古いアルゴリズムが継続使用に適していないと判断された場合、将来ある時点で削除可能であることを示すために非推奨としてマークされます。
 - 戻り値:
 - RandomGenerator (algorithm)の実装が非推奨としてマークされている場合はtrue
 
 - 
create
public T create()選択したalgorithmに基づいてRandomGeneratorのインスタンスを作成します。- 戻り値:
 RandomGeneratorの新しいインスタンス。
 - 
create
public T create(long seed) 開始の長いシードを提供するalgorithmに基づいてRandomGeneratorのインスタンスを作成します。 アルゴリズムで長いシードがサポートされていない場合は、createの引数形式が使用されません。- パラメータ:
 seed- 長いランダム・シード値。- 戻り値:
 RandomGeneratorの新しいインスタンス。
 - 
create
public T create(byte[] seed) 開始バイトの[]シードを指定するalgorithmに基づいて、RandomGeneratorのインスタンスを作成します。 バイトの[]シードがalgorithmでサポートされていない場合、createの引数形式は使用されません。- パラメータ:
 seed- byte配列のランダムなシード値。- 戻り値:
 RandomGeneratorの新しいインスタンス。- 例外:
 NullPointerException- シードがNULLの場合。
 
 -