Wenn Sie Zufallszahlen generieren, muss häufig jede generierte Nummer eindeutig sein. Ein gutes Beispiel ist die Auswahl von Lotterienummern. Jede zufällig aus einem Bereich ausgewählte Zahl (z. B. 1 bis 40) muss eindeutig sein, sonst wäre die Lotterieziehung ungültig.
Die einfachste Möglichkeit, eindeutige Zufallszahlen auszuwählen, besteht darin, den Zahlenbereich in eine Auflistung mit dem Namen ArrayList einzufügen. Wenn Sie noch nie zuvor auf eine ArrayList gestoßen sind, können Sie eine Reihe von Elementen speichern, die keine feste Nummer haben. Die Elemente sind Objekte, die der Liste hinzugefügt oder daraus entfernt werden können. Lassen Sie uns zum Beispiel die Lotterienummer auswählen. Es müssen eindeutige Zahlen im Bereich von 1 bis 40 ausgewählt werden.
Fügen Sie zunächst die Zahlen mit der Methode add () in eine ArrayList ein. Das Objekt muss als Parameter hinzugefügt werden:
import java.util.ArrayList;
öffentliche Lotterie
public static void main (String [] args)
// ArrayList definieren, um Integer-Objekte aufzunehmen
ArrayList numbers = new ArrayList ();
für (int i = 0; i < 40; i++)
numbers.add (i + 1);
System.out.println (Zahlen);
Beachten Sie, dass wir die Wrapper-Klasse Integer für den Elementtyp verwenden, damit die ArrayList Objekte und keine primitiven Datentypen enthält.
Die Ausgabe zeigt den Zahlenbereich von 1 bis 40 in der Reihenfolge:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 , 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40]
Eine Utility-Klasse namens Collections bietet verschiedene Aktionen an, die für eine Collection wie eine ArrayList ausgeführt werden können (z. B. Durchsuchen der Elemente, Finden des maximalen oder minimalen Elements, Umkehren der Reihenfolge der Elemente usw.). Eine der Aktionen, die es ausführen kann, ist das Mischen der Elemente. Die Zufallswiedergabe verschiebt jedes Element zufällig an eine andere Position in der Liste. Hierzu wird ein Zufallsobjekt verwendet. Dies bedeutet, dass es sich um eine deterministische Zufälligkeit handelt, dies ist jedoch in den meisten Situationen der Fall.
Um die ArrayList zu mischen, fügen Sie den Collections-Import oben im Programm hinzu und verwenden Sie dann die statische Shuffle-Methode. Die ArrayList muss als Parameter gemischt werden:
import java.util.Collections;
import java.util.ArrayList;
öffentliche Lotterie
public static void main (String [] args)
// ArrayList definieren, um Integer-Objekte aufzunehmen
ArrayList numbers = new ArrayList ();
für (int i = 0; i < 40; i++)
numbers.add (i + 1);
Collections.shuffle (Zahlen);
System.out.println (Zahlen);
Die Ausgabe zeigt nun die Elemente in der ArrayList in zufälliger Reihenfolge an:
[24, 30, 20, 15, 25, 1, 8, 7, 37, 16, 21, 2, 12, 22, 34, 33, 14, 38, 39, 18, 36, 28, 17, 4, 32 , 13, 40, 35, 6, 5, 11, 31, 26, 27, 23, 29, 19, 10, 3, 9]
Um die eindeutigen Zufallszahlen auszuwählen, lesen Sie einfach die ArrayList-Elemente nacheinander mit der get () -Methode. Es nimmt die Position des Elements in der ArrayList als Parameter an. Wenn das Lotterieprogramm beispielsweise sechs Zahlen im Bereich von 1 bis 40 auswählen muss:
import java.util.Collections;
import java.util.ArrayList;
öffentliche Lotterie
public static void main (String [] args)
// ArrayList definieren, um Integer-Objekte aufzunehmen
ArrayList numbers = new ArrayList ();
für (int i = 0; i < 40; i++)
numbers.add (i + 1);
Collections.shuffle (Zahlen);
System.out.print ("Die Lottozahlen dieser Woche sind:");
für (int j = 0; j < 6; j++)
System.out.print (numbers.get (j) + "");
Die Ausgabe ist: