Langage

Collections.Rotate(IList<Object>, Int32) Méthode

Définition

Fait pivoter les éléments de la liste spécifiée par la distance spécifiée.

[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

Paramètres

list
IList<Object>

liste à faire pivoter.

distance
Int32

distance pour faire pivoter la liste. Il n’existe aucune contrainte sur cette valeur ; il peut être zéro, négatif ou supérieur à list.size().

Attributs

Remarques

Fait pivoter les éléments de la liste spécifiée par la distance spécifiée. Après avoir appelé cette méthode, l’élément à l’index i sera l’élément précédemment au niveau du mod list.size()d’index(i - distance), pour toutes les valeurs comprises i0 entre et list.size()-1inclus. (Cette méthode n’a aucun effet sur la taille de la liste.)

Par exemple, supposons[t, a, n, k, s] qu’elle list comprend. Après l’appel Collections.rotate(list, 1) (ou Collections.rotate(list, -4)), list comprend [s, t, a, n, k].

Notez que cette méthode peut être appliquée utilement aux sous-listes pour déplacer un ou plusieurs éléments d’une liste tout en conservant l’ordre des éléments restants. Par exemple, l’idiome suivant déplace l’élément à l’index j vers l’avant vers la position k (qui doit être supérieur ou égal à ) j:

Collections.rotate(list.subList(j, k+1), -1);

Pour faire ce béton, supposons [a, b, c, d, e]qu’il list comprend . Pour déplacer l’élément à l’index 1 (b) vers l’avant deux positions, effectuez l’appel suivant :

Collections.rotate(l.subList(1, 4), -1);

La liste résultante est [a, c, d, b, e].

Pour déplacer plusieurs éléments vers l’avant, augmentez la valeur absolue de la distance de rotation. Pour déplacer les éléments vers l’arrière, utilisez une distance de décalage positive.

Si la liste spécifiée est petite ou implémente l’interface RandomAccess , cette implémentation échange le premier élément dans l’emplacement où elle doit aller, puis échange à plusieurs reprises l’élément déplacé vers l’emplacement où il doit aller jusqu’à ce qu’un élément déplacé soit échangé en premier élément. Si nécessaire, le processus est répété sur la seconde et les éléments successifs jusqu’à ce que la rotation soit terminée. Si la liste spécifiée est volumineuse et n’implémente pas l’interface, cette implémentation interrompt la liste en deux vues de sous-liste autour de l’index RandomAccess-distance mod size. Ensuite, la #reverse(List) méthode est appelée sur chaque vue de sous-liste, et enfin elle est appelée dans la liste entière. Pour obtenir une description plus complète des deux algorithmes, consultez la section 2.3 de Jon Bentley’s Programming Pearls (Addison-Wesley, 1986).

Ajouté dans la version 1.4.

Documentation Java pour java.util.Collections.rotate(java.util.List<?>, int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à