Heim  >  Artikel  >  Java  >  Shuffle() in Java

Shuffle() in Java

PHPz
PHPzOriginal
2024-08-30 15:36:36946Durchsuche

Java verfügt über viele integrierte Funktionen, um verschiedene Vorgänge an Sammlungen oder anderen Datentypen auszuführen, und eine davon ist Shuffle. Die Shuffle-Funktion ist in vielen anderen Sprachen wie Python verfügbar.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Die Shuffle-Funktion wird zum Mischen der Sammlungselemente verwendet.
  • Die in Parametern übergebenen Listenelemente werden zufällig permutiert.
  • Es gibt zwei Methoden zum Mischen in Java: Eine verwendet die Sammlungs-Shuffle-Methode und eine andere die Verwendung einer Zufallsklasse.
  • Die Sammlungs-Shuffle-Funktion kann auch auf zwei Arten aufgerufen werden: eine mit einem Zufallsparameter zur Angabe der Zufälligkeit und eine andere ohne Parameter.
  • shuffle()
  • shuffle(, )
  • Sie müssen die Liste übergeben, damit wir das Array in die Liste konvertieren, es dann an eine „collection.shuffle“ übergeben und das Ergebnis erneut in ein Array konvertieren.

Syntax für Shuffle() in Java

Deklaration für Shuffle-Methode:

public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)

Parameter:

  • Liste: Die Liste, die Sie durchlaufen, wird gemischt.
  • Zufällig: Es ist die Zufallsfunktion, die mit einem Startwert übergeben wird, die zur Quelle der Zufälligkeit wird.

Rücksendungen:

  • Die Shuffle-Funktion gibt keinen Wert zurück; es mischt nur die Liste.

Beispiele für Shuffle() in Java

Im folgenden Beispiel haben wir eine Liste aus einem Array mit einigen Alphabeten erstellt und die Shuffle-Methode verwendet, um das Array zu mischen. Jedes Mal, wenn Sie laufen, erhalten Sie eine andere gemischte Liste.

Beispiel #1

Code:

import java.util.*;
public class CollectionsShuffleExampleWithoutRandom {
public static void main(String[] args) {
List<String> list = Arrays.asList("R", "A", "H", "U", "L");
System.out.println("Before Shuffle : "+list);
Collections.shuffle(list);
System.out.println("After shuffle : "+list);
}
}

Ausgabe:

Shuffle() in Java

Beispiel #2

Im folgenden Beispiel erstellen wir eine verknüpfte Liste von Ganzzahlen und fügen ihr einige Ganzzahlen hinzu. Aber hier haben wir ein weiteres Argument übergeben, nämlich die Zufallsfunktion, die zur Quelle der Zufälligkeit wird. Dann haben wir die Random-Funktion mit dem Startwert 5 übergeben. Dies ist eine andere Variante, oder wir können sagen, die Methode der Verwendung der Shuffle-Funktion mit Randomness.

Code:

import java.util.*;
public class CollectionsShuffleWithRandom {
public static void main(String[] args) {
//Create linked list object
LinkedList<Integer> list = new LinkedList<Integer>();
//Add values
list.add(90);
list.add(100);
list.add(1);
list.add(10);
list.add(20);
System.out.println("Before Shuffle = "+list);
//Random() to shuffle the given list.
Collections.shuffle(list, new Random());
System.out.println("Shuffled with Random() = "+list);
//Random(5) to shuffle the given list.
Collections.shuffle(list, new Random(5));
System.out.println("Shuffled with Random(5) = "+list);
}
}

Ausgabe:

Shuffle() in Java

Mischen ohne Shuffle-Methode

Wenn Sie mehr Kontrolle über das Mischen wünschen, können Sie Ihre eigene Methode zum Mischen der Liste mit der Zufallsmethode und einen anderen Ansatz zum Mischen der Liste schreiben. Diese Methode ist flexibler und lässt sich einfacher in jede Anwendung integrieren. Sie können tatsächlich verstehen, wie Shuffle in der integrierten Methode von Java funktioniert.

Eingabe:Ein int-Array

Ausgabe: Gemischtes Array (in zufälliger Reihenfolge)

Beispiel:

public static int[] ShuffleArray(int[] array){
Random rand = new Random();  // Random value generator
for (int i=0; i<array.length; i++) {
int randomIndex = rand.nextInt(array.length);
int temp = array[i];
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
return array;
}

Die obige Funktion, bei der Sie nur eine Array-Ganzzahl übergeben müssen, wird ein gemischtes Array zurückgegeben. Innerhalb der Funktion können Sie sehen, dass wir das Array bis zu seiner Länge iterieren und eine Zufallszahl generieren. Diese wird dann als Array-Index behandelt, der mit einem anderen Array ausgetauscht wird. Auf diese Weise werden die Elemente innerhalb eines Arrays ausgetauscht. Das resultierende Array wird ausgetauscht.

Aus der obigen Funktion können wir ein Grundkonzept der Shuffle-Funktion erhalten, bei der eine Liste von Werten gesendet wird und jedes Mal eine Zufallszahl generiert wird, während die Elemente im Array iteriert werden. Das Element wird mit einem anderen Element in derselben Liste ausgetauscht, wobei der Index zufällig aus einer Zufallsfunktion generiert wird.

Wichtige Punkte für die Shuffle-Funktion

  • Diese Methode funktioniert, indem die Listenelemente zufällig permutiert und gemischt werden.
  • Bei jeder Ausführung kann das Ergebnis unterschiedlich sein.
  • Die Funktion benötigt nicht viel Zeit und läuft in linearer Zeit.
  • Wenn Sie eine Liste bereitstellen, die die RandomAccess-Schnittstelle nicht implementiert, kopiert Shuffle zunächst die Liste in ein Array, mischt die Array-Kopie und kopiert sie dann in eine Ergebnisliste und gibt sie zurück.
  • Shuffle durchläuft die Liste rückwärts – vom letzten Element bis zum zweiten Element wiederholt.
  • Während des Durchlaufens wählt es zufällig Elemente aus und tauscht sie mit der aktuellen Position aus.
  • Das zufällig ausgewählte Element stammt aus dem Teil der Liste vom ersten Element bis zum aktuellen Element.

Ausnahmen:

  • UnsupportedOperationException: wenn die übergebene Liste oder der Listeniterator keine Set-Operation unterstützt.

Anwendungen von Shuffle

Es kann viele Situationen geben, in denen die unten aufgeführte Zufallsfunktion einige Anwendungen bietet:

  • Mischen einer Liste von Fragen in einer QS-Anwendung.
  • Mischende Liste von Angeboten, die Sie Ihren App-Benutzern jeden Tag zeigen möchten.
  • Lotterieanwendung, bei der Sie dem Benutzer eine Losnummer zuweisen möchten.
  • Eindeutige Transaktionsnummern für ein Zahlungsfeld generieren.
  • Die Generierung eindeutiger Benutzer-IDs für verschiedene Benutzer kann der Benutzer-ID vorangestellt werden.
  • Es kann auch in kryptografischen Anwendungen verwendet werden.

Fazit

Im obigen Artikel haben wir verstanden, wie Shuffle funktioniert und wie Sie es verwenden können. Es kann mehrere Anwendungsfälle geben, in denen Sie die Shuffle-Funktion mit Zufallsparametern oder ohne Zufallsparameter verwenden würden, und einige Anwendungen benötigen möglicherweise eine andere flexible Implementierung, in der Sie Ihre eigene Shuffle-Funktion mit der Zufallsfunktion von Java schreiben können.

Das obige ist der detaillierte Inhalt vonShuffle() in Java. 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
Vorheriger Artikel:Java ersetzt Char in StringNächster Artikel:Java ersetzt Char in String