Java - Tilfældig lang, flydende, heltal og dobbelt

Denne hurtige vejledning illustrerer, hvordan man genererer en lang først ved hjælp af almindelig Java og ved hjælp af Apache Commons Math-biblioteket.

Denne artikel er en del af "Java - Back to Basic" -serien her på Baeldung.

1. Generer en ubegrænset lang

Lad os starte med at generere en lang:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect () {long generatedLong = new Random (). NextLong (); }

2. Generer en lang inden for et interval

2.1. Tilfældig lang med almindelig Java

Dernæst - lad os se på at oprette en tilfældig afgrænset lang - det vil sige en lang værdi inden for et givet interval eller interval:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect () {long leftLimit = 1L; lang højreLimit = 10L; long generatedLong = leftLimit + (long) (Math.random () * (rightLimit - leftLimit)); }

2.2. Tilfældig lang med Apache Commons Math

Lad os se på at generere den tilfældige Long med en renere API og Commons Math:

@Test offentlig ugyldighed givenUsingApacheCommons_whenGeneratingRandomLongBounded_thenCorrect () {long leftLimit = 10L; lang højreLimit = 100L; long generatedLong = new RandomDataGenerator (). nextLong (leftLimit, rightLimit); }

3. Generer et ubegrænset heltal

Lad os gå videre til at generere et tilfældigt heltal uden grænser:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomIntegerUnbounded_thenCorrect () {int generatedInteger = new Random (). NextInt (); }

Som du kan se, er det ret tæt på at generere en lang.

4. Generer et heltal inden for et interval

4.1. Tilfældigt heltal med almindelig Java

Dernæst - et tilfældigt heltal inden for et givet interval:

@ Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomIntegerBounded_thenCorrect () {int leftLimit = 1; int rightLimit = 10; int generatedInteger = leftLimit + (int) (ny Random (). nextFloat () * (rightLimit - leftLimit)); }

4.2. Tilfældig heltal med almindelig matematik

Og det samme med almindelig matematik:

@Test offentlig ugyldighed givenUsingApache_whenGeneratingRandomIntegerBounded_thenCorrect () {int leftLimit = 1; int rightLimit = 10; int generatedInteger = ny RandomDataGenerator (). nextInt (leftLimit, rightLimit); }

5. Generer en ubundet svømmer

Lad os nu gå over at generere tilfældige floats - først ubegrænsede:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomFloatUnbouned_thenCorrect () {float generatedFloat = ny tilfældig (). NextFloat (); }

6. Generer en svømmer inden for et interval

6.1. Tilfældig flydning med almindelig Java

Og en afgrænset tilfældig float:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomFloatBouned_thenCorrect () {float leftLimit = 1F; flyde til højre Limit = 10F; float generatedFloat = leftLimit + ny tilfældig (). nextFloat () * (rightLimit - leftLimit); }

6.2. Tilfældig flydning med almindelig matematik

Nu - en afgrænset tilfældig svømning med Commons Math:

@Test offentlig ugyldighed givenUsingApache_whenGeneratingRandomFloatBounded_thenCorrect () {float leftLimit = 1F; flyde højre Limit = 10F; float randomFloat = ny RandomDataGenerator (). getRandomGenerator (). nextFloat (); float generatedFloat = leftLimit + randomFloat * (rightLimit - leftLimit); }

7. Generer en ubegrænset dobbelt

7.1. Tilfældig ubegrænset dobbelt med almindelig Java

Endelig - vi genererer tilfældige dobbeltværdier - først med Java Math API:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomDoubleUnbounded_thenCorrect () {double generatedDouble = Math.random (); }

7.2. Tilfældig ubegrænset dobbelt med almindelig matematik

Samt en tilfældig dobbelt værdi med Apache Commons Math-biblioteket:

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

8. Generer en dobbelt inden for et interval

8.1. Tilfældig afgrænset dobbelt med almindelig Java

I dette eksempel skal vi se på en tilfældig dobbelt genereret inden for et interval - med Java:

@Test offentlig ugyldighed givenUsingPlainJava_whenGeneratingRandomDoubleBounded_thenCorrect () {dobbelt leftLimit = 1D; dobbelt rightLimit = 10D; dobbeltgenereretDobbelt = leftLimit + nyt tilfældigt (). nextDouble () * (rightLimit - leftLimit); }

8.2. Tilfældig afgrænset dobbelt med almindelig matematik

Og endelig - en tilfældig fordobling inden for et interval ved hjælp af Apache Commons Math-biblioteket:

@Test offentlig ugyldighed givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect () {double leftLimit = 1D; dobbelt rightLimit = 100D; dobbeltgenereretDobbelt = ny RandomDataGenerator (). næsteUniform (leftLimit, rightLimit); }

Og der har du det - hurtige og konkrete eksempler på, hvordan man genererer både ubegrænsede og afgrænsede værdier til de mest almindelige numeriske primitiver i Java.

9. Konklusion

Denne tutorial illustrerede, hvordan vi kunne generere tilfældige tal enten bundne eller ubundet ved hjælp af forskellige teknikker og biblioteker.

Som altid kan implementeringen af ​​alle disse eksempler og uddrag findes i GitHub-projektet. Dette er et Maven-baseret projekt, så det skal være let at importere og køre.