Java - Random Long, Float, Integer dan Double

Tutorial singkat ini akan mengilustrasikan cara membuat long terlebih dahulu menggunakan Java biasa dan menggunakan pustaka Apache Commons Math.

Artikel ini adalah bagian dari seri “Java - Kembali ke Dasar” di Baeldung.

1. Hasilkan Long Tak Terbatas

Mari kita mulai dengan menghasilkan Long:

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

2. Hasilkan Long Dalam Jangkauan

2.1. Acak Panjang Dengan Jawa Biasa

Selanjutnya - mari kita lihat cara membuat Long berbatas acak - yaitu, nilai Long dalam rentang atau interval tertentu:

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

2.2. Acak Panjang Dengan Apache Commons Math

Mari kita lihat cara menghasilkan Long acak dengan API dan Commons Math yang lebih bersih:

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

3. Hasilkan Unbounded Integer

Mari kita lanjutkan untuk menghasilkan Integer acak tanpa batas:

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

Seperti yang Anda lihat, ini cukup dekat untuk menghasilkan long.

4. Hasilkan Integer Dalam Rentang

4.1. Integer Acak Dengan Java Biasa

Berikutnya - bilangan bulat acak dalam rentang tertentu:

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

4.2. Integer Acak Dengan Commons Math

Dan sama dengan Common Math:

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

5. Hasilkan Float Tanpa Batas

Sekarang, mari kita pergi ke menghasilkan float acak - pertama tanpa batas:

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

6. Hasilkan Float Dalam Rentang

6.1. Mengambang Acak Dengan Jawa Biasa

Dan pelampung acak terbatas:

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

6.2. Float Acak Dengan Commons Math

Sekarang - float acak terbatas dengan 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. Hasilkan Unbounded Double

7.1. Random Unbounded Double Dengan Plain Java

Akhirnya - kita akan menghasilkan nilai ganda acak - pertama, dengan Java Math API:

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

7.2. Random Unbounded Double With Commons Math

Serta nilai ganda acak dengan pustaka Apache Commons Math:

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

8. Hasilkan Ganda Dalam Rentang

8.1. Random Bounded Double Dengan Plain Java

Dalam contoh ini, mari kita lihat ganda acak yang dihasilkan dalam interval - dengan Java:

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

8.2. Random Bounded Double With Commons Math

Dan terakhir - ganda acak dalam interval, menggunakan pustaka Apache Commons Math:

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

Dan begitulah - contoh cepat dan langsung tentang cara menghasilkan nilai tak terbatas dan tak terbatas untuk primitif numerik paling umum di Java.

9. Kesimpulan

Tutorial ini mengilustrasikan bagaimana kita bisa menghasilkan nomor acak baik terikat atau tidak, menggunakan teknik dan pustaka yang berbeda.

Seperti biasa, penerapan semua contoh dan cuplikan ini dapat ditemukan di proyek GitHub. Ini adalah proyek berbasis Maven sehingga harus mudah untuk diimpor dan dijalankan.