Heim  >  Artikel  >  Java  >  Wie kann ich in Java sich nicht wiederholende Zufallszahlen generieren?

Wie kann ich in Java sich nicht wiederholende Zufallszahlen generieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 10:01:02759Durchsuche

How Can I Generate Non-Repeating Random Numbers in Java?

Java-Ansatz zur Generierung sich nicht wiederholender Zufallszahlen

Das Erstellen einer Reihe eindeutiger Zufallszahlen in Java kann eine Herausforderung sein. Stellen Sie sich das folgende Szenario vor, in dem wir ein Array mit 10.000 sich nicht wiederholenden Ganzzahlen im Bereich von 0 bis 9999 füllen müssen.

Der folgende Codeausschnitt versucht, dieses Problem mithilfe der in Java integrierten Random-Klasse zu beheben:

import java.util.Random;
public class Sort {
    public static void main(String[] args) {
        int[] nums = new int[10000];

        Random randomGenerator = new Random();

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = randomGenerator.nextInt(10000);
        }
    }
}

Dieser Code kann jedoch aufgrund der Möglichkeit von Kollisionen bei der Verwendung der Modulo-Operation zum Zuordnen der Zufallszahl zu doppelten Zahlen führen gewünschten Bereich. Um eindeutige Zahlen sicherzustellen, können wir die Collections-Klasse von Java nutzen.

Lösung mit Java Collections.shuffle()

Der bevorzugte Ansatz zum Generieren sich nicht wiederholender Zufallszahlen in Java besteht darin, die Methode Collections.shuffle() zu verwenden. So funktioniert es:

  1. Erstellen Sie ein Array von Zahlen (Integer[] arr).
  2. Verwenden Sie Collections.shuffle(Arrays.asList(arr)), um die Reihenfolge der Elemente zufällig zu bestimmen im Array.
  3. Das zufällige Array enthält aufgrund der Neuordnung nun eindeutige Zahlen verarbeiten.

Zum Beispiel veranschaulicht das folgende Codefragment diese Methode:

public static void main(String[] args) {
    Integer[] arr = new Integer[1000];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
}

Dieser Ansatz garantiert, dass jede Zahl im Array eindeutig ist und die Anforderung erfüllt, nicht- Wiederholen von Zufallszahlen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java sich nicht wiederholende Zufallszahlen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn