CopyOnWriteArrayList 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.
Una variante thread-safe di java.util.ArrayList
in cui tutte le operazioni mutative (add
, set
e così via) vengono implementate eseguendo una nuova copia della matrice sottostante.
[Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class CopyOnWriteArrayList : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IList, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type CopyOnWriteArrayList = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IList
interface ICollection
interface IIterable
interface IRandomAccess
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Una variante thread-safe di java.util.ArrayList
in cui tutte le operazioni mutative (add
, set
e così via) vengono implementate eseguendo una nuova copia della matrice sottostante.
Questo è normalmente troppo costoso, ma può essere <><più efficiente di em/em> rispetto alle alternative quando le operazioni di attraversamento di grandi quantità di mutazioni outnumber, ed è utile quando non è possibile o non si vuole sincronizzare gli attraversamenti, ma è necessario impedire l'interferenza tra i thread simultanei. Il metodo iteratore di stile "snapshot" usa un riferimento allo stato della matrice nel punto in cui è stato creato l'iteratore. Questa matrice non cambia mai durante la durata dell'iteratore, quindi l'interferenza è impossibile e l'iteratore è garantito non generare ConcurrentModificationException
. L'iteratore non rifletterà aggiunte, rimozione o modifiche all'elenco dopo la creazione dell'iteratore. Le operazioni di modifica degli elementi sui iteratori stessi (remove
, set
e ) add
non sono supportate. Questi metodi generano UnsupportedOperationException
.
Tutti gli elementi sono consentiti, tra cui null
.
Effetti di coerenza della memoria: come per altre raccolte simultanee, azioni in un thread prima di inserire un oggetto in un'azione CopyOnWriteArrayList
<i before</i>> successive all'accesso CopyOnWriteArrayList
o alla rimozione di tale elemento da un altro thread.
Questa classe è un membro di Java Collections Framework.
Aggiunto nella versione 1.5.
Documentazione Java per java.util.concurrent.CopyOnWriteArrayList
.
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
CopyOnWriteArrayList() |
Crea un elenco vuoto. |
CopyOnWriteArrayList(ICollection) |
Crea un elenco contenente gli elementi della raccolta specificata, nell'ordine restituito dall'iteratore dell'insieme. |
CopyOnWriteArrayList(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
CopyOnWriteArrayList(Object[]) |
Crea un elenco che contiene una copia della matrice specificata. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle all'istanza di Android sottostante. (Ereditato da Object) |
IsEmpty |
Restituisce |
JniIdentityHashCode |
Una variante thread-safe di |
JniPeerMembers |
Una variante thread-safe di |
PeerReference |
Una variante thread-safe di |
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) |
Inserisce l'elemento specificato nella posizione specificata in questo elenco. |
Add(Object) |
Aggiunge l'elemento specificato alla fine di questo elenco. |
AddAll(ICollection) |
Aggiunge tutti gli elementi nella raccolta specificata alla fine di questo elenco, nell'ordine restituito dall'iteratore dell'insieme specificato. |
AddAll(Int32, ICollection) |
Inserisce tutti gli elementi nella raccolta specificata in questo elenco, a partire dalla posizione specificata. |
AddAllAbsent(ICollection) |
Aggiunge tutti gli elementi nell'insieme specificato che non sono già contenuti in questo elenco, alla fine di questo elenco, nell'ordine restituito dall'iteratore dell'insieme specificato. |
AddIfAbsent(Object) |
Aggiunge l'elemento, se non presente. |
Clear() |
Rimuove tutti gli elementi da questo elenco. |
Clone() |
Restituisce una copia superficiale di questo elenco. |
Contains(Object) |
Restituisce |
ContainsAll(ICollection) |
Restituisce |
Dispose() |
Una variante thread-safe di |
Dispose(Boolean) |
Una variante thread-safe di |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
ForEach(IConsumer) |
Una variante thread-safe di |
Get(Int32) |
Da aggiungere |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
IndexOf(Object) |
Da aggiungere |
IndexOf(Object, Int32) |
Restituisce l'indice della prima occorrenza dell'elemento specificato in questo elenco, la ricerca in avanti da |
Iterator() |
Restituisce un iteratore sugli elementi di questo elenco nella sequenza corretta. |
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 |
LastIndexOf(Object, Int32) |
Restituisce l'indice dell'ultima occorrenza dell'elemento specificato in questo elenco, cercando indietro da |
ListIterator() |
Da aggiungere |
ListIterator(Int32) |
Da aggiungere |
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) |
Rimuove l'elemento nella posizione specificata in questo elenco. |
Remove(Object) |
Rimuove la prima occorrenza dell'elemento specificato da questo elenco, se presente. |
RemoveAll(ICollection) |
Rimuove da questo elenco tutti gli elementi contenuti nell'insieme specificato. |
RemoveIf(IPredicate) |
Una variante thread-safe di |
ReplaceAll(IUnaryOperator) |
Una variante thread-safe di |
RetainAll(ICollection) |
Mantiene solo gli elementi di questo elenco contenuti nell'insieme specificato. |
Set(Int32, Object) |
Sostituisce l'elemento nella posizione specificata in questo elenco con l'elemento specificato. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
Size() |
Restituisce il numero di elementi in questo elenco. |
Sort(IComparator) |
Una variante thread-safe di |
Spliterator() |
Restituisce un |
SubList(Int32, Int32) |
Restituisce una visualizzazione della parte di questo elenco tra |
ToArray() |
Restituisce una matrice contenente tutti gli elementi di questo elenco nella sequenza corretta (dal primo all'ultimo elemento). |
ToArray(Object[]) |
Restituisce una matrice contenente tutti gli elementi di questo elenco nella sequenza corretta (dal primo all'ultimo elemento); il tipo di runtime della matrice restituita è quello della matrice specificata. |
ToArray<T>() |
Una variante thread-safe di |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Una variante thread-safe di |
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() |
Una variante thread-safe di |
IJavaPeerable.DisposeUnlessReferenced() |
Una variante thread-safe di |
IJavaPeerable.Finalized() |
Una variante thread-safe di |
IJavaPeerable.JniManagedPeerState |
Una variante thread-safe di |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Una variante thread-safe di |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Una variante thread-safe di |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Una variante thread-safe di |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Una variante thread-safe di |
GetJniTypeName(IJavaPeerable) |
Una variante thread-safe di |
ToEnumerable(IIterable) |
Una variante thread-safe di |
ToEnumerable<T>(IIterable) |
Una variante thread-safe di |