Tracks
/
Java
Java
/
Lehrplan
/
Zufälligkeit
Zu

Zufälligkeit in Java

6 Übungen

Über Zufälligkeit

Zufällige Werte erzeugen

In Java gibt es mehrere Möglichkeiten, zufällige Werte zu erzeugen.

Mit Random

Die Klasse java.util.Random bietet mehrere Methoden, um pseudozufällige Werte zu erzeugen.

Random random = new Random();

random.next(8); // Generates a random int with the given number of bits, in this case 8

random.nextInt(); // Generates a random int in the range Integer.MIN_VALUE through Integer.MAX_VALUE
random.nextInt(10); // Generates a random int in the range 0 to 10

random.nextFloat(); // Generates a random float in the range 0.0 to 1.0
random.nextDouble(); // Generates a random double in the range 0.0 to 1.0

random.nextBoolean(); // Generates a random boolean value
random.nextLong(); // Generates a random long value

Neben ihrem Standardkonstruktor hat die Klasse Random noch einen weiteren Konstruktor, dem ein eigener Seed übergeben werden kann. Wenn zwei Instanzen von Random mit demselben Seed erzeugt werden und für beide dieselbe Abfolge von Methodenaufrufen ausgeführt wird, erzeugen und liefern sie identische Zahlenfolgen.

Mit Math.random()

Die Methode Math.random() ist eine Hilfsmethode, um ein zufälliges Double im Bereich von 0.0 bis 1.0 zu erzeugen.

Mit ThreadLocalRandom

Die Klasse java.util.concurrent.ThreadLocalRandom ist eine Alternative zu java.util.Random und ist threadsicher ausgelegt. Diese Klasse hat einige zusätzliche Hilfsmethoden zum Erzeugen von Werten, die sowohl eine untere als auch eine obere Grenze annehmen. Das macht die Arbeit mit ihr etwas einfacher.

ThreadLocalRandom random = ThreadLocalRandom.current();

random.nextInt(10, 20); // Generates a random int in the range 10 to 20
random.nextLong(10, 20); // Generates a random long in the range 10 to 20

random.nextFloat(10.0, 20.0); // Generates a random float in the range 10 to 20
random.nextDouble(10.0, 20.0); // Generates a random double in the range 10 to 20

Sicherheit

Zufällige Werte werden oft verwendet, um sensible Werte wie Passwörter zu erzeugen. Allerdings gelten alle oben beschriebenen Methoden zum Erzeugen zufälliger Werte nicht als kryptografisch sicher.

Um kryptografisch starke Zufallszahlen zu erzeugen, verwende die Klasse java.security.SecureRandom.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Zufälligkeit