CopyOnWriteArraySet Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Объект, Set
который использует внутреннюю CopyOnWriteArrayList
для всех своих операций.
[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
- Наследование
- Атрибуты
- Реализации
Комментарии
Объект, Set
который использует внутреннюю CopyOnWriteArrayList
для всех своих операций. Таким образом, он использует те же основные свойства: <ul><li>Он лучше подходит для приложений, в которых размеры набора обычно остаются небольшими, операции только для чтения значительно превосходят мутативные операции, и необходимо предотвратить вмешательство между потоками во время обхода. <li>Это потокобезопасно. <Операции li>Mutative (add
, , remove
set
и т. д.) являются дорогостоящими, так как они обычно влечет за собой копирование всего базового массива. <li>Итераторы не поддерживают мутативную remove
операцию. <li>Traversal через итераторы быстро и не может столкнуться с помехами от других потоков. Итераторы зависят от изменяющихся моментальных снимков массива во время создания итераторов. </ul>
<b>Пример использования.</b> В следующем эскизе кода используется набор операций копирования для записи для поддержания набора объектов Обработчика, выполняющих некоторые действия при обновлении состояния.
{@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();
}
}}
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.5.
Документация по Java для java.util.concurrent.CopyOnWriteArraySet
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
CopyOnWriteArraySet() |
Создает пустой набор. |
CopyOnWriteArraySet(ICollection) |
Создает набор, содержащий все элементы указанной коллекции. |
CopyOnWriteArraySet(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEmpty |
Добавление (Унаследовано от AbstractCollection) |
JniIdentityHashCode |
Объект, |
JniPeerMembers |
Объект, |
PeerReference |
Объект, |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Add(Object) |
Добавление (Унаследовано от AbstractCollection) |
AddAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
Clear() |
Добавление (Унаследовано от AbstractCollection) |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Contains(Object) |
Добавление (Унаследовано от AbstractCollection) |
ContainsAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
Dispose() |
Объект, |
Dispose(Boolean) |
Объект, |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
ForEach(IConsumer) |
Объект, |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
Iterator() |
Возвращает итератор над элементами, содержащимися в этом наборе, в порядке добавления этих элементов. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
Remove(Object) |
Добавление (Унаследовано от AbstractCollection) |
RemoveAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
RemoveIf(IPredicate) |
Объект, |
RetainAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Возвращает количество элементов в этом наборе. |
Spliterator() |
|
ToArray() |
Добавление (Унаследовано от AbstractCollection) |
ToArray(Object[]) |
Добавление (Унаследовано от AbstractCollection) |
ToArray<T>() |
Объект, |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Объект, |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Объект, |
IJavaPeerable.DisposeUnlessReferenced() |
Объект, |
IJavaPeerable.Finalized() |
Объект, |
IJavaPeerable.JniManagedPeerState |
Объект, |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Объект, |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Объект, |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Объект, |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Объект, |
GetJniTypeName(IJavaPeerable) |
Объект, |
ToEnumerable(IIterable) |
Объект, |
ToEnumerable<T>(IIterable) |
Объект, |