Java - Véletlen hosszú, úszó, egész és kettős

Ez a gyors bemutató bemutatja, hogyan lehet előbb hosszúakat létrehozni egyszerű Java használatával és az Apache Commons Math könyvtár használatával.

Ez a cikk a „Java - Vissza az alapokhoz” sorozat része, itt, Baeldungon.

1. Készítsen korlátlan hosszút

Kezdjük egy Long előállításával:

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

2. Generáljon hosszút egy tartományon belül

2.1. Véletlen hosszú, sima Java-val

Ezután - nézzük meg egy véletlenszerűen kötött hosszú - azaz egy hosszú érték létrehozását egy adott tartományon vagy intervallumon belül:

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

2.2. Véletlen hosszú az Apache Commons Math-tal

Vessünk egy pillantást a véletlenszerű Long előállítására egy tisztább API-val és a Commons Math-tal:

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

3. Készítsen korlátlan egész számot

Térjünk át egy véletlen egész szám generálására korlátok nélkül:

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

Mint láthatja, elég közel áll ahhoz, hogy hosszút generáljon.

4. Generáljon egész számot egy tartományon belül

4.1. Véletlen egész szám sima Java-val

Következő - egy véletlenszerű egész szám egy adott tartományon belül:

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

4.2. Véletlenszerű egész szám a Commons Math-tal

És ugyanez a Common Math esetében:

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

5. Készítsen korlátlan úszót

Most nézzük át véletlenszerű úszók létrehozását - először korlátlanul:

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

6. Generáljon úsztatást egy tartományon belül

6.1. Véletlenszerű lebegés egyszerű Java-val

És egy korlátozott véletlenszerű úszó:

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

6.2. Random Float With Commons Math

Most - egy korlátozott véletlenszerű úszó a Commons Math-szal:

@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. Hozzon létre egy korlátlan kettőt

7.1. Véletlen, korlátlan kettős sima Java-val

Végül - véletlenszerű dupla értékeket állítunk elő - először a Java Math API-val:

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

7.2. Véletlen, korlátlan kettős, Commons Math

Valamint egy véletlenszerű dupla érték az Apache Commons Math könyvtárral:

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

8. Generáljon duplát egy tartományon belül

8.1. Véletlenszerűen kötött kettős sima Java-val

Ebben a példában vessünk egy pillantást egy intervallumon belül generált véletlenszerű duplára - Java-val:

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

8.2. Random Bounded Double with Commons Math

És végül - véletlenszerű dupla intervallumon belül, az Apache Commons Math könyvtár segítségével:

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

És itt van - gyors és lényegre törő példák arra, hogyan lehet korlátlan és korlátozott értékeket létrehozni a Java leggyakoribb numerikus primitívjeihez.

9. Következtetés

Ez az oktatóanyag bemutatta, hogyan állíthatunk elő véletlenszerű számokat kötött vagy kötetlen formában, különböző technikák és könyvtárak segítségével.

Mint mindig, ezeknek a példáknak és kivonatoknak a megvalósítása megtalálható a GitHub projektben. Ez egy Maven-alapú projekt, így könnyen importálhatónak és futtathatónak kell lennie.