CopyOnWriteArraySet Classe
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.
A Set
que utiliza um interno CopyOnWriteArrayList
para todas as suas operações.
[Android.Runtime.Register("java/util/concurrent/CopyOnWriteArraySet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class CopyOnWriteArraySet : Java.Util.AbstractSet, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/util/concurrent/CopyOnWriteArraySet", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type CopyOnWriteArraySet = class
inherit AbstractSet
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Herança
- Atributos
- Implementações
Comentários
A Set
que utiliza um interno CopyOnWriteArrayList
para todas as suas operações. Assim, ele compartilha as mesmas propriedades básicas: <ul><li>É mais adequado para aplicações em que os tamanhos definidos geralmente permanecem pequenos, as operações somente leitura superam amplamente as operações mutativas, e você precisa evitar interferências entre threads durante a travessia. <li>É thread-safe. <li>As operações mutativas (add
, , remove
, etc.) são caras, set
pois geralmente envolvem a cópia de toda a matriz subjacente. <li>Os iteradores não suportam a operação mutativa remove
. <li>Traversal via iteradores é rápido e não pode encontrar interferência de outros threads. Os iteradores dependem de instantâneos imutáveis da matriz no momento em que os iteradores foram construídos. </ul>
<b>Exemplo de uso.</b> O esboço de código a seguir usa um conjunto de cópia na gravação para manter um conjunto de objetos Handler que executam alguma ação em atualizações de estado.
{@code
class Handler { void handle() { ... } }
class X {
private final CopyOnWriteArraySet<Handler> handlers
= new CopyOnWriteArraySet<>();
public void addHandler(Handler h) { handlers.add(h); }
private long internalState;
private synchronized void changeState() { internalState = ...; }
public void update() {
changeState();
for (Handler handler : handlers)
handler.handle();
}
}}
Essa classe é membro do Java Collections Framework.
Adicionado em 1.5.
Documentação Java para java.util.concurrent.CopyOnWriteArraySet
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Construtores
CopyOnWriteArraySet() |
Cria um conjunto vazio. |
CopyOnWriteArraySet(ICollection) |
Cria um conjunto contendo todos os elementos da coleção especificada. |
CopyOnWriteArraySet(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução. |
Propriedades
Class |
Retorna a classe de tempo de execução deste |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
IsEmpty |
A ser adicionado (Herdado de AbstractCollection) |
JniIdentityHashCode |
A |
JniPeerMembers |
A |
PeerReference |
A |
ThresholdClass |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
ThresholdType |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
Add(Object) |
A ser adicionado (Herdado de AbstractCollection) |
AddAll(ICollection) |
A ser adicionado (Herdado de AbstractCollection) |
Clear() |
A ser adicionado (Herdado de AbstractCollection) |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
Contains(Object) |
A ser adicionado (Herdado de AbstractCollection) |
ContainsAll(ICollection) |
A ser adicionado (Herdado de AbstractCollection) |
Dispose() |
A |
Dispose(Boolean) |
A |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
ForEach(IConsumer) |
A |
GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
Iterator() |
Retorna um iterador sobre os elementos contidos nesse conjunto na ordem em que esses elementos foram adicionados. |
JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
Remove(Object) |
A ser adicionado (Herdado de AbstractCollection) |
RemoveAll(ICollection) |
A ser adicionado (Herdado de AbstractCollection) |
RemoveIf(IPredicate) |
A |
RetainAll(ICollection) |
A ser adicionado (Herdado de AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
Size() |
Retorna o número de elementos nesse conjunto. |
Spliterator() |
Retorna um |
ToArray() |
A ser adicionado (Herdado de AbstractCollection) |
ToArray(Object[]) |
A ser adicionado (Herdado de AbstractCollection) |
ToArray<T>() |
A |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
A |
Wait() |
Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>. (Herdado de Object) |
Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
A |
IJavaPeerable.DisposeUnlessReferenced() |
A |
IJavaPeerable.Finalized() |
A |
IJavaPeerable.JniManagedPeerState |
A |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
A |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
A |
IJavaPeerable.SetPeerReference(JniObjectReference) |
A |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
A |
GetJniTypeName(IJavaPeerable) |
A |
ToEnumerable(IIterable) |
A |
ToEnumerable<T>(IIterable) |
A |