Ab Java 7 sollten Sie nicht mehr mit Random
. Für die meisten Anwendungen ist die Zufallszahlengenerator der Wahl ist jetzt ThreadLocalRandom
.
Für Fork-Join-Pools und parallele Streams, verwenden Sie SplittableRandom
.
Joshua Bloch. Effektives Java. Dritte Auflage.
Ausgehend von Java 8
Für Fork-Join-Pools und parallele Streams verwenden Sie SplittableRandom
das in der Regel schneller ist, eine bessere statistische Unabhängigkeit und Gleichmäßigkeitseigenschaften im Vergleich zu Random
.
Um einen Zufallswert zu erzeugen int
im Bereich [0, 1_000]:
int n = new SplittableRandom().nextInt(0, 1_001);
Um einen Zufallswert zu erzeugen int[100]
Array mit Werten aus dem Bereich [0, 1_000]:
int[] a = new SplittableRandom().ints(100, 0, 1_001).parallel().toArray();
Um einen Stream von Zufallswerten zurückzugeben:
IntStream stream = new SplittableRandom().ints(100, 0, 1_001);
0 Stimmen
Wenn Sie viele Zufallszahlen benötigen, empfehle ich die Klasse Random in der API nicht. Sie hat einfach eine zu kleine Periode. Versuchen Sie die Mersenne-Twister stattdessen. Es gibt eine Java-Implementierung .
46 Stimmen
Bevor Sie eine neue Antwort schreiben, bedenken Sie, dass es bereits mehr als 65 Antworten auf diese Frage gibt. Bitte stellen Sie sicher, dass Ihre Antwort Informationen enthält, die nicht in den vorhandenen Antworten enthalten sind.