Freigeben über


Collections.Shuffle Methode

Definition

Überlädt

Shuffle(IList<Object>)

Ändert die angegebene Liste zufällig mit einer Standardquelle der Zufallsart.

Shuffle(IList<Object>, Random)

Zufällige Stummschaltung der angegebenen Liste mithilfe der angegebenen Zufallsquelle.

Shuffle(IList<Object>)

Ändert die angegebene Liste zufällig mit einer Standardquelle der Zufallsart.

[Android.Runtime.Register("shuffle", "(Ljava/util/List;)V", "")]
public static void Shuffle (System.Collections.Generic.IList<object> list);
[<Android.Runtime.Register("shuffle", "(Ljava/util/List;)V", "")>]
static member Shuffle : System.Collections.Generic.IList<obj> -> unit

Parameter

list
IList<Object>

die Liste, die neu gemischt werden soll.

Attribute

Hinweise

Ändert die angegebene Liste zufällig mit einer Standardquelle der Zufallsart. Alle Permutationen treten mit ungefähr gleicher Wahrscheinlichkeit auf.

Die Hecke "ungefähr" wird in der vorstehenden Beschreibung verwendet, da die Standardquelle der Zufallsheit nur ungefähr eine unvoreingenommene Quelle von unabhängig gewählten Bits ist. Wenn es eine perfekte Quelle von zufällig gewählten Bits wäre, würde der Algorithmus Permutationen mit perfekter Uniformität auswählen.

Diese Implementierung durchläuft die Liste rückwärts, von dem letzten Element bis zur zweiten, wiederholt ein zufällig ausgewähltes Element in die "aktuelle Position". Elemente werden zufällig aus dem Teil der Liste ausgewählt, der vom ersten Element bis zur aktuellen Position (einschließlich) ausgeführt wird.

Diese Methode wird in linearer Zeit ausgeführt. Wenn die angegebene Liste die RandomAccess Schnittstelle nicht implementiert und groß ist, dumpt diese Implementierung die angegebene Liste in einem Array, bevor sie neu gemischt wird, und dumpt das shuffled-Array wieder in der Liste. Dadurch wird das quadratische Verhalten vermieden, das dazu führen würde, dass eine "sequenzielle Zugriffsliste" vorhanden ist.

Java-Dokumentation für java.util.Collections.shuffle(java.util.List<?>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Shuffle(IList<Object>, Random)

Zufällige Stummschaltung der angegebenen Liste mithilfe der angegebenen Zufallsquelle.

[Android.Runtime.Register("shuffle", "(Ljava/util/List;Ljava/util/Random;)V", "")]
public static void Shuffle (System.Collections.Generic.IList<object> list, Java.Util.Random rnd);
[<Android.Runtime.Register("shuffle", "(Ljava/util/List;Ljava/util/Random;)V", "")>]
static member Shuffle : System.Collections.Generic.IList<obj> * Java.Util.Random -> unit

Parameter

list
IList<Object>

die Liste, die neu gemischt werden soll.

rnd
Random

die Quelle der Zufallsart, die verwendet werden soll, um die Liste zu mischen.

Attribute

Hinweise

Zufällige Stummschaltung der angegebenen Liste mithilfe der angegebenen Zufallsquelle. Alle Permutationen treten mit gleicher Wahrscheinlichkeit auf, wobei davon ausgegangen wird, dass die Zufallsquelle fair ist.

Diese Implementierung durchläuft die Liste rückwärts, von dem letzten Element bis zur zweiten, wiederholt ein zufällig ausgewähltes Element in die "aktuelle Position". Elemente werden zufällig aus dem Teil der Liste ausgewählt, der vom ersten Element bis zur aktuellen Position (einschließlich) ausgeführt wird.

Diese Methode wird in linearer Zeit ausgeführt. Wenn die angegebene Liste die RandomAccess Schnittstelle nicht implementiert und groß ist, dumpt diese Implementierung die angegebene Liste in einem Array, bevor sie neu gemischt wird, und dumpt das shuffled-Array wieder in der Liste. Dadurch wird das quadratische Verhalten vermieden, das dazu führen würde, dass eine "sequenzielle Zugriffsliste" vorhanden ist.

Java-Dokumentation für java.util.Collections.shuffle(java.util.List<?>, java.util.Random).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: