Java - náhodné dlhé, plávajúce, celé číslo a dvojité
Tento rýchly tutoriál ilustruje, ako vygenerovať dlho najskôr pomocou obyčajnej Javy a pomocou knižnice Apache Commons Math.
Tento článok je súčasťou série „Java - Späť na základné“ tu na Baeldungu.
1. Vytvorte neobmedzené dlhé
Začnime s generovaním Long:
@Test public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect () {dlho generovanéLong = nové Random (). NextLong (); }
2. Vytvorte Long v dosahu
2.1. Náhodné dlhé s obyčajnou Javou
Ďalej - pozrime sa na vytvorenie náhodne ohraničenej Long - teda Long hodnoty v danom rozsahu alebo intervale:
@Test public void givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect () {long leftLimit = 1L; long rightLimit = 10L; long generovanyLong = leftLimit + (long) (Math.random () * (rightLimit - leftLimit)); }
2.2. Náhodné dlhé s matematikou Apache Commons
Poďme sa pozrieť na generovanie náhodného Longu s čistejším API a Commons Math:
@Test public void givenUsingApacheCommons_whenGeneratingRandomLongBounded_thenCorrect () {dlho leftLimit = 10L; long rightLimit = 100L; long generatedLong = new RandomDataGenerator (). nextLong (leftLimit, rightLimit); }
3. Vytvorte celé číslo bez obmedzenia
Prejdime priamo k generovaniu náhodného celého čísla bez hraníc:
@Test public void givenUsingPlainJava_whenGeneratingRandomIntegerUnbounded_thenCorrect () {int generatedInteger = new Random (). NextInt (); }
Ako vidíte, je dosť blízko k vytvoreniu dlhej.
4. Vytvorte celé číslo v rozsahu
4.1. Náhodné celé číslo s obyčajnou Javou
Ďalej - náhodné celé číslo v danom rozsahu:
@Test public void givenUsingPlainJava_whenGeneratingRandomIntegerBounded_thenCorrect () {int leftLimit = 1; int rightLimit = 10; int generatedInteger = leftLimit + (int) (new Random (). nextFloat () * (rightLimit - leftLimit)); }
4.2. Náhodné celé číslo s matematikou Commons
A to isté s programom Common Math:
@Test public void givenUsingApache_whenGeneratingRandomIntegerBounded_thenCorrect () {int leftLimit = 1; int rightLimit = 10; int generatedInteger = new RandomDataGenerator (). nextInt (leftLimit, rightLimit); }
5. Vytvorte neobmedzený plavák
Poďme teraz na generovanie náhodných plavákov - najskôr bez obmedzenia:
@Test public void givenUsingPlainJava_whenGeneratingRandomFloatUnbouned_thenCorrect () {float generovanýFloat = nový Random (). NextFloat (); }
6. Vytvorte plavák v rozmedzí
6.1. Náhodný plavák s obyčajnou Javou
A ohraničený náhodný plavák:
@Test public void givenUsingPlainJava_whenGeneratingRandomFloatBouned_thenCorrect () {float leftLimit = 1F; float rightLimit = 10F; float generatedFloat = leftLimit + new Random (). nextFloat () * (rightLimit - leftLimit); }
6.2. Náhodný float s Commons Math
Teraz - ohraničený náhodný plavák s 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. Vytvorte dvojicu bez obmedzenia
7.1. Náhodné, neobmedzené, dvojité s obyčajnou Javou
Na záver - vygenerujeme náhodné dvojité hodnoty - najskôr pomocou Java Math API:
@Test public void givenUsingPlainJava_whenGeneratingRandomDoubleUnbounded_thenCorrect () {double generatedDouble = Math.random (); }
7.2. Náhodný neobmedzený dvojitý s Commons Math
Rovnako ako náhodná dvojnásobná hodnota s knižnicou Apache Commons Math:
@Test public void givenUsingApache_whenGeneratingRandomDoubleUnbounded_thenCorrect () {double generatedDouble = new RandomDataGenerator (). GetRandomGenerator (). NextDouble (); }
8. Vytvorte dvojitý v rozsahu
8.1. Náhodne ohraničený dvojitý s obyčajnou Javou
V tomto príklade sa pozrime na náhodnú dvojku vygenerovanú v intervale - s Javou:
@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
A nakoniec - náhodné zdvojnásobenie v intervale pomocou knižnice Apache Commons Math:
@Test public void givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect () {double leftLimit = 1D; double rightLimit = 100D; double generatedDouble = new RandomDataGenerator (). nextUniform (leftLimit, rightLimit); }
A máte to - rýchle a k veci príklady toho, ako generovať neobmedzené aj ohraničené hodnoty pre najbežnejšie numerické primitívy v Jave.
9. Záver
Tento výukový program ilustroval, ako môžeme generovať náhodné čísla viazané alebo neviazané pomocou rôznych techník a knižníc.
Implementáciu všetkých týchto príkladov a úryvkov ako vždy nájdete v projekte GitHub. Toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť.