Collections.Rotate(IList<Object>, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dreht die Elemente in der angegebenen Liste um den angegebenen Abstand.
[Android.Runtime.Register("rotate", "(Ljava/util/List;I)V", "")]
public static void Rotate(System.Collections.Generic.IList<object> list, int distance);
[<Android.Runtime.Register("rotate", "(Ljava/util/List;I)V", "")>]
static member Rotate : System.Collections.Generic.IList<obj> * int -> unit
Parameter
- distance
- Int32
der Abstand zum Drehen der Liste. Für diesen Wert gibt es keine Einschränkungen; es kann null, negativ oder größer als sein list.size().
- Attribute
Hinweise
Dreht die Elemente in der angegebenen Liste um den angegebenen Abstand. Nach dem Aufrufen dieser Methode ist das Element am Index i das Element, das zuvor bei index (i - distance) mod list.size()war, für alle Werte zwischen i0 und list.size()-1einschließlich. (Diese Methode hat keine Auswirkungen auf die Größe der Liste.)
Nehmen wir beispielsweise an list , sie umfasst[t, a, n, k, s]. Nach dem Aufrufen Collections.rotate(list, 1) (oder Collections.rotate(list, -4)) list werden .[s, t, a, n, k]
Beachten Sie, dass diese Methode nützlich auf Unterlisten angewendet werden kann, um ein oder mehrere Elemente innerhalb einer Liste zu verschieben und gleichzeitig die Reihenfolge der verbleibenden Elemente beizubehalten. Beispielsweise verschiebt das folgende Idiom das Element an der Indexposition j vorwärts an die Position k (die größer oder gleich jsein muss):
Collections.rotate(list.subList(j, k+1), -1);
Um diesen Konkreten zu machen, nehmen wir an list , besteht [a, b, c, d, e]. Führen Sie den folgenden Aufruf aus, um das Element am Index 1 (b) um zwei Positionen vorwärts zu verschieben:
Collections.rotate(l.subList(1, 4), -1);
Die resultierende Liste ist [a, c, d, b, e].
Wenn Sie mehrere Elemente vorwärts verschieben möchten, erhöhen Sie den Absolutenwert des Drehabstands. Um Elemente rückwärts zu verschieben, verwenden Sie einen positiven Schichtabstand.
Wenn die angegebene Liste klein ist oder die RandomAccess Schnittstelle implementiert, wechselt diese Implementierung das erste Element an die Stelle, an der es gehen soll, und wechselt dann wiederholt das vertriebene Element an den Ort, an dem es gehen soll, bis ein vertriebenes Element in das erste Element ausgetauscht wird. Bei Bedarf wird der Prozess auf den zweiten und aufeinander folgenden Elementen wiederholt, bis die Drehung abgeschlossen ist. Wenn die angegebene Liste groß ist und die RandomAccess Schnittstelle nicht implementiert, bricht diese Implementierung die Liste in zwei Unterlistenansichten um index -distance mod size. Anschließend wird die #reverse(List) Methode für jede Unterlistenansicht aufgerufen und schließlich in der gesamten Liste aufgerufen. Eine ausführlichere Beschreibung beider Algorithmen finden Sie in Abschnitt 2.3 von Jon Bentleys Programming Pearls (Addison-Wesley, 1986).
In 1.4 hinzugefügt.
Java Dokumentation für java.util.Collections.rotate(java.util.List<?>, int).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.