このクイックチュートリアルでは、プレーンJavaとApacheCommonsMathライブラリを使用して最初にlongを生成する方法を説明します。

この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。

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. ApacheCommonsMathでランダムに長く

よりクリーンな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を使用したランダム整数

そして、Common Mathでも同じです:

@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を使用したランダムフロート

Now – 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値を生成します。まず、JavaMathAPIを使用します。

@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プロジェクトにあります。 これはMavenベースのプロジェクトであるため、インポートと実行が簡単である必要があります。