Lenguaje

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

Definición

Gira los elementos de la lista especificada por la distancia especificada.

[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

Parámetros

list
IList<Object>

la lista que se va a girar.

distance
Int32

distancia a la que se va a girar la lista. No hay restricciones en este valor; puede ser cero, negativo o mayor que list.size().

Atributos

Comentarios

Gira los elementos de la lista especificada por la distancia especificada. Después de llamar a este método, el elemento en el índice i será el elemento anteriormente en index (i - distance) mod list.size(), para todos los valores de i entre 0 y list.size()-1, ambos incluidos. (Este método no tiene ningún efecto en el tamaño de la lista).

Por ejemplo, supongamos que list consta[t, a, n, k, s]. Después de Collections.rotate(list, 1) invocar (o Collections.rotate(list, -4)), list constará [s, t, a, n, k]de .

Tenga en cuenta que este método se puede aplicar útilmente a las sublists para mover uno o varios elementos dentro de una lista, a la vez que se conserva el orden de los elementos restantes. Por ejemplo, la siguiente expresión mueve el elemento en el índice j hacia delante a la posición k (que debe ser mayor o igual que j):

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

Para hacer este concreto, supongamos que list consta de [a, b, c, d, e]. Para mover el elemento en el índice 1 (b) hacia delante dos posiciones, realice la invocación siguiente:

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

La lista resultante es [a, c, d, b, e].

Para mover más de un elemento hacia delante, aumente el valor absoluto de la distancia de rotación. Para mover elementos hacia atrás, use una distancia de desplazamiento positiva.

Si la lista especificada es pequeña o implementa la RandomAccess interfaz, esta implementación intercambia el primer elemento en la ubicación que debe ir y, a continuación, intercambia repetidamente el elemento desplazado en la ubicación en la que debe ir hasta que un elemento desplazado se intercambia en el primer elemento. Si es necesario, el proceso se repite en los elementos segundo y sucesivos, hasta que se complete la rotación. Si la lista especificada es grande y no implementa la RandomAccess interfaz , esta implementación divide la lista en dos vistas de sublist alrededor del índice -distance mod size. A continuación, se invoca el #reverse(List) método en cada vista de lista secundaria y, por último, se invoca en toda la lista. Para obtener una descripción más completa de ambos algoritmos, consulte la sección 2.3 de Jon Bentley's Programming Pearls (Addison-Wesley, 1986).

Agregado en la versión 1.4.

Java documentación para java.util.Collections.rotate(java.util.List<?>, int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a