CodeGym/Java-Blog/Random-DE/Java.util.Random-Klasse
Autor
Jesse Haniel
Lead Software Architect at Tribunal de Justiça da Paraíba

Java.util.Random-Klasse

Veröffentlicht in der Gruppe Random-DE

Was ist die Klasse java.util.Random in Java?

Die Klasse java.util.Random wird zum Generieren von Pseudozufallszahlen verwendet. Die von dieser Klasse implementierten Methoden werden verwendet, um verschiedene Zufallsdatentypen wie int, double und float zu generieren. Es gibt also zwei Haupttypen von Zufallszahlen: statistische Zufallszahlen und Pseudozufallszahlen . Die statistischen Zufallszahlen (wie einfache Zufallszahlen in der Mathematik) sind eine Menge von Werten, die kein erkennbares Muster aufweisen. Wenn Sie beispielsweise zehnmal würfeln, wird jedes Mal eine Zufallszahl generiert, die kein erkennbares Muster aufweist.

Was sind Pseudozufallszahlen?

Es handelt sich um eine Reihe von Werten, die statistisch zufällig sind, aber einen bekannten Ausgangspunkt haben . In Java wird jede Pseudozufallszahl durch einen Algorithmus erzeugt. Normalerweise wird ein Zyklus jedes Mal wiederholt, wenn java.util.Random eine Zufallszahl generiert. Ein Zufallszahlengenerator in Java erzeugt statistische Zufallszahlen, jedoch mit einem bekannten Startpunkt, die von einem Algorithmus generiert werden. Das macht diese Werte pseudozufällig.

Ist die Klasse java.util.Random kryptografisch unsicher?

Es ist kryptografisch unsicher, da es Algorithmen zur Generierung von Zufallszahlen implementiert hat. Dies führt dazu, dass eine Person, die weiß, wie der Algorithmus funktioniert, nicht lange auf Ihre sensiblen Daten zugreifen muss. Wenn Sie also mit einigen Sicherheitsanwendungen arbeiten, vertrauliche Daten schützen oder zufällige Passwörter generieren müssen, sollten Sie die Verwendung dieser Klasse besser vermeiden. Es ist in vielen Fällen hilfreich, z. B. beim Generieren einer Zufallszahl für Ihren Würfelwurf beim Ludo, beim Glücksspiel, beim Werfen für ein Match oder in anderen Bereichen, in denen Ihr gewünschtes Ergebnis unvorhersehbar ist.

Methodendeklaration

Um die Methoden dieser Klasse verwenden zu können, müssen Sie sie zunächst aus dem Paket as importieren
import java.util.Random;
Nach dem Import müssen Sie ein Objekt dieser Klasse erstellen
Random randomNumbers = new Random();
Schauen wir uns im weiteren Verlauf verschiedene Beispiele für die Verwendung der Klasse java.util.Random an .

Beispiel

import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();

		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);

		/*
		 * Returns the next pseudo random integer value between 0 and 5
		 * because if we use '6' then, it will give random numbers from 0 to 6
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );

		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);

		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */

		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);

		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Ausgang

----------Random Boolean--------- Der zufällige Boolesche Wert ist: true ----------Random Integer--------- Die Würfelwurf: 4 Würfelwurf: 6 Würfelwurf: 1 Würfelwurf: 1 Würfelwurf: 3 ----------Random Long--------- Random Long-Wert: -6029959293504570824 ---- ------Zufällige Bytes--------- Dies sind die zufälligen Bytes = [ -37 90 -98 -70 23 -111 19 108 ]

Methoden

Jetzt besprechen wir einige der von dieser Klasse bereitgestellten Methoden, wobei wir bedenken, dass randomNumbers das Objekt oder die Instanz unserer Klasse ist.
  1. doubles() :

    Diese Methode gibt eine unendliche Reihe pseudozufällig generierter Double-Werte zurück. Sehen wir uns nun an, wie diese Methode verwendet wird.

    randomNumbers.doubles();
  2. ints() :

    Diese Methode gibt eine unendliche Reihe pseudozufällig generierter ganzzahliger Werte zurück. Sie können das folgende Skript verwenden, um diese Methode aufzurufen.

    randomNumbers.ints();
  3. longs() :

    Diese Methode gibt eine unendliche Reihe pseudozufällig generierter langer Werte zurück. Zum Aufrufen dieser Methode wird das folgende Skript verwendet.

    randomNumbers.longs();
  4. nextBoolean() :

    Diese Methode gibt den nächsten gleichmäßig verteilten pseudozufälligen booleschen Wert aus der Zufallszahlengeneratorsequenz zurück. Die gleichmäßige Verteilung hat eine rechteckige Form, was bedeutet, dass jeder Wert in der Verteilung die gleiche Wahrscheinlichkeit hat. Hier erfahren Sie, wie Sie diese Methode verwenden.

    randomNumbers.nextBoolean();
  5. nextInt(int n) :

    Diese Methode gibt den nächsten gleichmäßig verteilten pseudozufälligen Ganzzahlwert aus der Zufallszahlengeneratorsequenz zwischen 0 (einschließlich) und dem angegebenen Wert (exklusiv) zurück. Erhalten Sie einen kurzen Überblick über die Verwendung dieser Methode.

    randomNumbers.nextInt(10);

Abschluss

Wir hoffen, dass Sie inzwischen verstehen, was java.util.Random ist und wie Sie die verschiedenen Methoden implementieren und in welchem ​​Szenario Sie es verwenden. Sie können diese Klasse jederzeit in Java verwenden. Fühlen Sie sich frei, zu üben und kommen Sie hierher zurück, wenn Sie weitere Hilfe benötigen. Viel Spaß beim Lernen!
Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare