ArrayList Classe
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.
Implementazione di matrice ridimensionabile dell'interfaccia List
.
[Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ArrayList : Java.Util.AbstractList, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ArrayList = class
inherit AbstractList
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IList
interface ICollection
interface IIterable
interface IRandomAccess
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Implementazione di matrice ridimensionabile dell'interfaccia List
. Implementa tutte le operazioni di elenco facoltative e consente tutti gli elementi, inclusi null
. Oltre a implementare l'interfaccia List
, questa classe fornisce metodi per modificare le dimensioni della matrice usata internamente per archiviare l'elenco. Questa classe è approssimativamente equivalente a Vector
, ad eccezione del fatto che non è asincronizzata.
Le size
operazioni , get
iterator
isEmpty
set
e vengono listIterator
eseguite in tempo costante. L'operazione add
viene eseguita in tempo costante ammortizzato, ovvero l'aggiunta di n elementi richiede tempo O(n). Tutte le altre operazioni vengono eseguite in tempo lineare (approssimativamente). Il fattore costante è basso rispetto a quello per l'implementazione LinkedList
.
Ogni ArrayList
istanza ha una capacità. La capacità è la dimensione della matrice usata per archiviare gli elementi nell'elenco. È sempre grande quanto la dimensione dell'elenco. Man mano che gli elementi vengono aggiunti a arrayList, la capacità aumenta automaticamente. I dettagli dei criteri di crescita non vengono specificati oltre al fatto che l'aggiunta di un elemento ha costi di tempo ammortizzati costanti.
Un'applicazione può aumentare la capacità di un'istanza ArrayList
prima di aggiungere un numero elevato di elementi usando l'operazione ensureCapacity
. Ciò può ridurre la quantità di reallocation incrementale.
<Nota forte>che questa implementazione non è sincronizzata.</strong> Se più thread accedono simultaneamente a un'istanza ArrayList
e almeno uno dei thread modifica l'elenco in modo strutturale, deve essere sincronizzato esternamente. Una modifica strutturale è un'operazione che aggiunge o elimina uno o più elementi oppure ridimensiona in modo esplicito la matrice di backing; semplicemente impostando il valore di un elemento non è una modifica strutturale. Questa operazione viene in genere eseguita sincronizzando su un oggetto che incapsula naturalmente l'elenco.
Se non esiste alcun oggetto di questo tipo, l'elenco deve essere "wrapped" usando il Collections#synchronizedList Collections.synchronizedList
metodo . Questa operazione viene eseguita al momento della creazione, per evitare l'accesso accidentale non sincronizzato all'elenco:
List list = Collections.synchronizedList(new ArrayList(...));
<p id="fail-fast"> Gli iteratori restituiti da questa classe #iterator() iterator
e #listIterator(int) listIterator
i metodi sono <em>fail-fast</em>: se l'elenco viene modificato in modo strutturale in qualsiasi momento dopo la creazione dell'iteratore, in qualsiasi modo tranne tramite i metodi o ListIterator#add(Object) add
proprietari dell'iteratoreListIterator#remove() remove
, l'iteratore genererà un ConcurrentModificationException
oggetto . Pertanto, a fronte di modifiche simultanee, l'iteratore ha esito negativo rapidamente e pulito, anziché rischiare un comportamento arbitrario e non deterministico in un momento indeterminato in futuro.
Si noti che il comportamento non riuscito di un iteratore non può essere garantito perché è, in genere, impossibile rendere eventuali garanzie difficili in presenza di modifiche simultanee non sincronizzate. Gli iteratori veloci non riescono generano ConcurrentModificationException
un'attività ottimale. Pertanto, sarebbe sbagliato scrivere un programma che dipende da questa eccezione per la sua correttezza: il comportamento non rapido degli iteratori deve essere usato solo per rilevare i bug.
Questa classe è un membro di Java Collections Framework.
Aggiunto nella versione 1.2.
Documentazione Java per java.util.ArrayList
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Costruttori
ArrayList() |
Costruisce un elenco vuoto con una capacità iniziale di dieci. |
ArrayList(ICollection) |
Costruisce un elenco contenente gli elementi della raccolta specificata, nell'ordine restituito dall'iteratore dell'insieme. |
ArrayList(Int32) |
Costruisce un elenco vuoto con la capacità iniziale specificata. |
ArrayList(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle all'istanza di Android sottostante. (Ereditato da Object) |
IsEmpty |
Da aggiungere (Ereditato da AbstractCollection) |
JniIdentityHashCode |
Implementazione di matrice ridimensionabile dell'interfaccia |
JniPeerMembers |
Implementazione di matrice ridimensionabile dell'interfaccia |
ModCount |
Numero di volte in cui questo elenco è stato modificato in modo strutturale. (Ereditato da AbstractList) |
PeerReference |
Implementazione di matrice ridimensionabile dell'interfaccia |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
Add(Int32, Object) |
Da aggiungere (Ereditato da AbstractList) |
Add(Object) |
Da aggiungere (Ereditato da AbstractCollection) |
AddAll(ICollection) |
Da aggiungere (Ereditato da AbstractCollection) |
AddAll(Int32, ICollection) |
Da aggiungere (Ereditato da AbstractList) |
Clear() |
Da aggiungere (Ereditato da AbstractCollection) |
Clone() |
Restituisce una copia superficiale di questa |
Contains(Object) |
Da aggiungere (Ereditato da AbstractCollection) |
ContainsAll(ICollection) |
Da aggiungere (Ereditato da AbstractCollection) |
Dispose() |
Implementazione di matrice ridimensionabile dell'interfaccia |
Dispose(Boolean) |
Implementazione di matrice ridimensionabile dell'interfaccia |
EnsureCapacity(Int32) |
Aumenta la capacità di questa |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
ForEach(IConsumer) |
Implementazione di matrice ridimensionabile dell'interfaccia |
Get(Int32) |
Restituisce l'elemento nella posizione specificata in questo elenco. |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
IndexOf(Object) |
Da aggiungere (Ereditato da AbstractList) |
Iterator() |
Restituisce un iteratore sugli elementi di questo elenco nella sequenza corretta. (Ereditato da AbstractList) |
JavaFinalize() |
Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto. (Ereditato da Object) |
LastIndexOf(Object) |
Da aggiungere (Ereditato da AbstractList) |
ListIterator() |
Da aggiungere (Ereditato da AbstractList) |
ListIterator(Int32) |
Da aggiungere (Ereditato da AbstractList) |
Notify() |
Riattiva un singolo thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
Remove(Int32) |
Da aggiungere (Ereditato da AbstractList) |
Remove(Object) |
Da aggiungere (Ereditato da AbstractCollection) |
RemoveAll(ICollection) |
Da aggiungere (Ereditato da AbstractCollection) |
RemoveIf(IPredicate) |
Implementazione di matrice ridimensionabile dell'interfaccia |
RemoveRange(Int32, Int32) |
Rimuove da questo elenco tutti gli elementi il cui indice è compreso tra |
ReplaceAll(IUnaryOperator) |
Implementazione di matrice ridimensionabile dell'interfaccia |
RetainAll(ICollection) |
Da aggiungere (Ereditato da AbstractCollection) |
Set(Int32, Object) |
Da aggiungere (Ereditato da AbstractList) |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
Size() |
Restituisce il numero di elementi in questo elenco. |
Sort(IComparator) |
Implementazione di matrice ridimensionabile dell'interfaccia |
Spliterator() |
Crea un <em>late-binding/em> e <em>fail-fast<</em> |
SubList(Int32, Int32) |
Da aggiungere (Ereditato da AbstractList) |
ToArray() |
Da aggiungere (Ereditato da AbstractCollection) |
ToArray(Object[]) |
Da aggiungere (Ereditato da AbstractCollection) |
ToArray<T>() |
Implementazione di matrice ridimensionabile dell'interfaccia |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
TrimToSize() |
Taglia la capacità di questa |
UnregisterFromRuntime() |
Implementazione di matrice ridimensionabile dell'interfaccia |
Wait() |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.< (Ereditato da Object) |
Wait(Int64) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.DisposeUnlessReferenced() |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.Finalized() |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.JniManagedPeerState |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Implementazione di matrice ridimensionabile dell'interfaccia |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Implementazione di matrice ridimensionabile dell'interfaccia |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Implementazione di matrice ridimensionabile dell'interfaccia |
GetJniTypeName(IJavaPeerable) |
Implementazione di matrice ridimensionabile dell'interfaccia |
ToEnumerable(IIterable) |
Implementazione di matrice ridimensionabile dell'interfaccia |
ToEnumerable<T>(IIterable) |
Implementazione di matrice ridimensionabile dell'interfaccia |