Willekeurige Getallen Genereren in Java: Praktische Gids met Random en Math.random
In deze beknopte tutorial leer je hoe je willekeurige waarden in Java produceert met de twee meest gangbare benaderingen: java.util.Random en Math.random(). Beide zijn onderdeel van de JDK, maar elk serveert iets andere use-cases en biedt unieke features.
- java.util.Random – Genereert getallen van elk primitief type en kan geseed worden voor reproduceerbaarheid.
- Math.random() – Biedt een snelle manier om een double in het bereik [0.0, 1.0) te krijgen zonder een object aan te maken.
Willekeurige Getal Generatie met java.util.Random
De Random klasse kan int, long, float, double en boolean waarden produceren. Instantieer het eenmaal en hergebruik hetzelfde object om prestatie-overhead te voorkomen.
Hieronder is een compleet voorbeeld dat tien willekeurige integers tussen 0 en 99 (inclusief) uitvoert. Als je de bovengrens inclusief wilt, tel er één bij de argument op.
import java.util.Random;
public class RandomNumbers {
public static void main(String[] args) {
Random rng = new Random();
for (int i = 0; i < 10; i++) {
int randomNumber = rng.nextInt(100); // 0-99
System.out.println("Willekeurig Nr: " + randomNumber);
}
}
}
Typische Output:
Willekeurig Nr: 17 Willekeurig Nr: 57 Willekeurig Nr: 73 Willekeurig Nr: 48 Willekeurig Nr: 68 Willekeurig Nr: 86 Willekeurig Nr: 34 Willekeurig Nr: 97 Willekeurig Nr: 73 Willekeurig Nr: 18
Omdat Random thread-safe is voor de meeste gebruiksvallen, kun je dezelfde instantie delen over meerdere threads indien nodig. Voor reproduceerbare sequences, geef een seed door: new Random(42).
Willekeurige Getal Generatie met Math.random()
Wanneer je alleen een snelle double in het bereik [0.0, 1.0) nodig hebt, is Math.random() handig. Het delegeert intern aan een enkele Random instantie, dus het is efficiënt voor kleine workloads.
Voorbeeld: genereer tien double waarden.
public class DemoRandom {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(Math.random());
}
}
}
Typische Output:
0.46518450373334297 0.14859851177803485 0.5628391820492477 0.6323378498048606 0.1740198445692248 0.9140544122258946 0.9167350036262347 0.49251219841030147 0.7426056725722353
Om integers of doubles in een ander bereik te genereren, combineer Math.random() met rekenkunde. Bijvoorbeeld, om een willekeurige int tussen 1 en 10 inclusief te krijgen: (int)(Math.random() * 10) + 1.
Belangrijkste Punten
- Gebruik
java.util.Randomwanneer je een variëteit aan primitieve typen of deterministische sequences via seeding nodig hebt. - Gebruik
Math.random()voor snelle, eenmalige doubles in het [0.0, 1.0) interval. - Hergebruik altijd dezelfde
Randominstantie om herhaalde seeding overhead te voorkomen. - Voor thread-safe, high-performance willekeurigheid in concurrent omgevingen, overweeg
ThreadLocalRandom(Java 7+).
Java
- Java EE Applicaties Implementeren Op Microsoft Azure: Een Stapsgewijze Gids
- Java List Interface: overzicht, implementaties en kernmethoden
- Java TreeMap: Gesorteerde maps beheersen met praktische voorbeelden
- Java Collection-algoritmes: Sorteren, shuffelen en meer
- Een Array van Objecten in Java aanmaken: Stap-voor-stap gids
- Java String length() Methode: Hoe de grootte van een String op te vragen (Voorbeeld)
- Java's String compareTo() Methode beheersen: Syntaxis, Use Cases en Praktische Voorbeelden
- Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden
- Een char omzetten naar een String in Java – Praktische voorbeelden en best practices
- Een String omkeren in Java met recursie – Stapsgewijze handleiding
- Java 8 Streams: Declaratieve benadering voor dataverwerking