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.