Collections.Rotate(IList<Object>, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ruota gli elementi nell'elenco specificato in base alla distanza specificata.
[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
Parametri
- distance
- Int32
distanza per ruotare l'elenco. Non esistono vincoli su questo valore; può essere zero, negativo o maggiore di list.size().
- Attributi
Commenti
Ruota gli elementi nell'elenco specificato in base alla distanza specificata. Dopo aver chiamato questo metodo, l'elemento in corrispondenza dell'indice i sarà l'elemento precedentemente in corrispondenza di index (i - distance) mod list.size(), per tutti i valori compresi i tra 0 e list.size()-1, inclusi. Questo metodo non ha alcun effetto sulle dimensioni dell'elenco.
Si supponga, ad esempio, di list includere[t, a, n, k, s]. Dopo aver richiamato Collections.rotate(list, 1) (o Collections.rotate(list, -4)), list sarà costituito da [s, t, a, n, k].
Si noti che questo metodo può essere applicato utilemente agli elenchi secondari per spostare uno o più elementi all'interno di un elenco mantenendo l'ordine degli elementi rimanenti. Ad esempio, il linguaggio seguente sposta l'elemento in corrispondenza dell'indice j in avanti alla posizione k (che deve essere maggiore o uguale a j):
Collections.rotate(list.subList(j, k+1), -1);
Per rendere concreto questo risultato, si supponga list di includere [a, b, c, d, e]. Per spostare l'elemento in corrispondenza dell'indice 1 (b) in avanti due posizioni, eseguire la chiamata seguente:
Collections.rotate(l.subList(1, 4), -1);
L'elenco risultante è [a, c, d, b, e].
Per spostare più di un elemento in avanti, aumentare il valore assoluto della distanza di rotazione. Per spostare gli elementi all'indietro, usare una distanza di spostamento positiva.
Se l'elenco specificato è piccolo o implementa l'interfaccia RandomAccess , questa implementazione scambia il primo elemento nella posizione in cui deve andare, quindi scambia ripetutamente l'elemento spostato nella posizione in cui deve andare fino a quando non viene scambiato un elemento spostato nel primo elemento. Se necessario, il processo viene ripetuto nei secondi e successivi elementi, fino al completamento della rotazione. Se l'elenco specificato è di grandi dimensioni e non implementa l'interfaccia , questa implementazione suddivide l'elenco RandomAccess in due viste dell'elenco secondario intorno all'indice -distance mod size.
#reverse(List) Il metodo viene quindi richiamato in ogni visualizzazione dell'elenco secondario e infine viene richiamato nell'intero elenco. Per una descrizione più completa di entrambi gli algoritmi, vedere la sezione 2.3 di Jon Bentley's Programming Pearls (Addison-Wesley, 1986).
Aggiunta nella versione 1.4.
per java.util.Collections.rotate(java.util.List<?>, int).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.