Java - ランダムロング、フロート、整数およびダブル

Java-ランダムロング、フロート、整数、ダブル

このクイックチュートリアルでは、プレーンJavaとApache Commons Mathライブラリを使用して長い最初のコードを生成する方法を説明します。

この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。

1. 無制限のロングを生成する

Longの生成から始めましょう:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect() {
    long generatedLong = new Random().nextLong();
}

2. 範囲内でロングを生成する

2.1. プレーンJavaを使用したランダムロング

次に、ランダムに制限されたLongの作成を見てみましょう。つまり、指定された範囲または間隔内のLong値です。

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect() {
    long leftLimit = 1L;
    long rightLimit = 10L;
    long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
}

2.2. Apache CommonsMathを使用したランダムロング

よりクリーンなAPIとCommonsMathを使用してランダムなLongを生成する方法を見てみましょう。

@Test
public void givenUsingApacheCommons_whenGeneratingRandomLongBounded_thenCorrect() {
    long leftLimit = 10L;
    long rightLimit = 100L;
    long generatedLong = new RandomDataGenerator().nextLong(leftLimit, rightLimit);
}

3. 無制限の整数を生成する

境界のないランダムな整数の生成に移りましょう。

@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerUnbounded_thenCorrect() {
    int generatedInteger = new Random().nextInt();
}

ご覧のとおり、longの生成にかなり近いです。

4. 範囲内の整数を生成する

4.1. プレーンJavaを使用したランダム整数

次-指定された範囲内のランダムな整数:

@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerBounded_thenCorrect() {
    int leftLimit = 1;
    int rightLimit = 10;
    int generatedInteger = leftLimit + (int) (new Random().nextFloat() * (rightLimit - leftLimit));
}

4.2. CommonsMathを使用したランダム整数

そして、一般的な数学でも同じです:

@Test
public void givenUsingApache_whenGeneratingRandomIntegerBounded_thenCorrect() {
    int leftLimit = 1;
    int rightLimit = 10;
    int generatedInteger = new RandomDataGenerator().nextInt(leftLimit, rightLimit);
}

5. 無制限のフロートを生成する

それでは、ランダムフロートの生成について見ていきましょう–最初は無制限です:

@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatUnbouned_thenCorrect() {
    float generatedFloat = new Random().nextFloat();
}

6. 範囲内でフロートを生成する

6.1. プレーンJavaを使用したランダムフロート

そして、有界なランダムフロート:

@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatBouned_thenCorrect() {
    float leftLimit = 1F;
    float rightLimit = 10F;
    float generatedFloat = leftLimit + new Random().nextFloat() * (rightLimit - leftLimit);
}

6.2. CommonsMathを使用したランダムフロート

現在– Commons Mathを使用した境界付きランダムフロート:

@Test
public void givenUsingApache_whenGeneratingRandomFloatBounded_thenCorrect() {
    float leftLimit = 1F;
    float rightLimit = 10F;
    float randomFloat = new RandomDataGenerator().getRandomGenerator().nextFloat();
    float generatedFloat = leftLimit + randomFloat * (rightLimit - leftLimit);
}

7. 無制限のダブルを生成する

7.1. プレーンJavaを使用したランダム無制限ダブル

最後に、ランダムなdouble値を生成します。まず、Java MathAPIを使用します。

@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
    double generatedDouble = Math.random();
}

7.2. CommonsMathを使用したランダム無制限ダブル

Apache Commons Mathライブラリーによるランダムなdouble値と同様:

@Test
public void givenUsingApache_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
    double generatedDouble = new RandomDataGenerator().getRandomGenerator().nextDouble();
}

8. 範囲内でダブルを生成する

8.1. プレーンJavaを使用したランダムバウンドダブル

この例では、Javaを使用して間隔内で生成されたランダムなdoubleを見てみましょう。

@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleBounded_thenCorrect() {
    double leftLimit = 1D;
    double rightLimit = 10D;
    double generatedDouble = leftLimit + new Random().nextDouble() * (rightLimit - leftLimit);
}

8.2. CommonsMathを使用したランダムバウンドダブル

最後に、Apache Commons Mathライブラリを使用した、間隔内のランダムな倍精度:

@Test
public void givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect() {
    double leftLimit = 1D;
    double rightLimit = 100D;
    double generatedDouble = new RandomDataGenerator().nextUniform(leftLimit, rightLimit);
}

そして、Javaで最も一般的な数値プリミティブの無制限値と有界値の両方を生成する方法の迅速かつ重要な例があります。

9. 結論

このチュートリアルでは、さまざまな手法とライブラリを使用して、バインドされたまたはバインドされていない乱数を生成する方法を示しました。

いつものように、これらすべての例とスニペットの実装は、GitHub projectにあります。 これはMavenベースのプロジェクトであるため、インポートと実行が簡単である必要があります。