Collections.Rotate(IList<Object>, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Gira os elementos na lista especificada pela distância 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
- distance
- Int32
a distância para girar a lista. Não há restrições nesse valor; pode ser zero, negativo ou maior que list.size().
- Atributos
Comentários
Gira os elementos na lista especificada pela distância especificada. Depois de chamar esse método, o elemento no índice i será o elemento anteriormente no mod list.size()de índice(i - distance), para todos os valores entre i0 elist.size()-1, inclusive. (Esse método não tem efeito sobre o tamanho da lista.)
Por exemplo, suponha que list seja composto[t, a, n, k, s]. Depois de invocar Collections.rotate(list, 1) (ou Collections.rotate(list, -4)), list será composto [s, t, a, n, k].
Observe que esse método pode ser aplicado de forma útil a sublists para mover um ou mais elementos dentro de uma lista, preservando a ordem dos elementos restantes. Por exemplo, o idioma a seguir move o elemento no índice j para a posição k (que deve ser maior ou igual a j):
Collections.rotate(list.subList(j, k+1), -1);
Para tornar isso concreto, suponha que list seja.[a, b, c, d, e] Para mover o elemento no índice 1 (b) encaminhar duas posições, execute a seguinte invocação:
Collections.rotate(l.subList(1, 4), -1);
A lista resultante é [a, c, d, b, e].
Para mover mais de um elemento para frente, aumente o valor absoluto da distância de rotação. Para mover elementos para trás, use uma distância de deslocamento positiva.
Se a lista especificada for pequena ou implementar a RandomAccess interface, essa implementação trocará o primeiro elemento para o local em que ele deve ir e, em seguida, trocará repetidamente o elemento deslocado para o local em que ele deve ir até que um elemento deslocado seja trocado para o primeiro elemento. Se necessário, o processo é repetido no segundo e em elementos sucessivos, até que a rotação seja concluída. Se a lista especificada for grande e não implementar a RandomAccess interface, essa implementação dividirá a lista em duas exibições de sublista em torno do índice -distance mod size. Em seguida, o #reverse(List) método é invocado em cada modo de exibição de sublist e, por fim, é invocado em toda a lista. Para obter uma descrição mais completa de ambos os algoritmos, consulte a Seção 2.3 das Pérolas de Programação de Jon Bentley (Addison-Wesley, 1986).
Adicionado em 1.4.
Java documentação para java.util.Collections.rotate(java.util.List<?>, int).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.