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, , removesetи т. д.) являются дорогостоящими, так как они обычно влечет за собой копирование всего базового массива. <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, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>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) |
Объект, |