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 rotar.

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 el módulo list.size()de índice (i - distance) , 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 invocar Collections.rotate(list, 1) (o Collections.rotate(list, -4)), list comprenderá [s, t, a, n, k].

Tenga en cuenta que este método se puede aplicar útilmente a las sublistas 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 que esto sea 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 siguiente invocación:

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 a la ubicación en la que debe ir hasta que se intercambia un elemento desplazado en el primer elemento. Si es necesario, el proceso se repite en el segundo y en los elementos sucesivos, hasta que se completa 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 sublista alrededor del índice -distance mod size. A continuación, se invoca el #reverse(List) método en cada vista de sublista 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).

Se agregó en la versión 1.4.

Documentación de Java 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 proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Se aplica a