CopyOnWriteArrayList Класс

Определение

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

[Android.Runtime.Register("java/util/concurrent/CopyOnWriteArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class CopyOnWriteArrayList : Java.Lang.Object, IDisposable, 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 ISequencedCollection
    interface IRandomAccess
Наследование
CopyOnWriteArrayList
Атрибуты
Реализации

Комментарии

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

Это обычно слишком затратно, но может оказаться <более>< эффективным,> чем альтернативные варианты, если обходные операции значительно превосходят мутации, и полезно, если вы не можете или не хотите синхронизировать обходы, но необходимо исключить вмешательство между параллельными потоками. Метод итератора стиля "моментальный снимок" использует ссылку на состояние массива в точке создания итератора. Этот массив никогда не изменяется в течение времени существования итератора, поэтому вмешательство невозможно, итератор гарантированно не будет вызывать ConcurrentModificationException. Итератор не будет отражать добавления, удаления или изменения списка после создания итератора. Операции, изменяющие элементы, сами итераторы (removesetиadd) не поддерживаются. Эти методы вызывают UnsupportedOperationException.

Все элементы разрешены, включая null.

Эффекты согласованности памяти: как и в других параллельных коллекциях, действия в потоке перед размещением объекта в CopyOnWriteArrayList<действия i>happen-before</i> после доступа или удаления этого элемента из CopyOnWriteArrayList другого потока.

Этот класс является членом Платформы коллекций Java.

Добавлено в версии 1.5.

Документация по Java для java.util.concurrent.CopyOnWriteArrayList.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

Имя Описание
CopyOnWriteArrayList()

Создает пустой список.

CopyOnWriteArrayList(ICollection)

Создает список, содержащий элементы указанной коллекции, в том порядке, в котором они возвращаются итератором коллекции.

CopyOnWriteArrayList(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

CopyOnWriteArrayList(Object[])

Создает список, содержащий копию заданного массива.

Свойства

Имя Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
First

Добавление

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsEmpty

Возвращает, true если этот список не содержит элементов.

JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
JniPeerMembers

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

Last

Добавление

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя Описание
Add(Int32, Object)

Вставляет указанный элемент в указанное положение в этом списке.

Add(Object)

Добавляет указанный элемент в конец этого списка.

AddAll(ICollection)

Добавляет все элементы указанной коллекции в конец этого списка в порядке, возвращаемом итератором указанной коллекции.

AddAll(Int32, ICollection)

Вставляет все элементы в указанную коллекцию в этот список, начиная с указанной позиции.

AddAllAbsent(ICollection)

Добавляет все элементы в указанной коллекции, которые еще не содержатся в этом списке, в конце этого списка в том порядке, в котором они возвращаются итератором указанной коллекции.

AddFirst(Object)

Добавление

AddIfAbsent(Object)

Добавляет элемент, если он отсутствует.

AddLast(Object)

Добавление

Clear()

Удаляет все элементы из этого списка.

Clone()

Возвращает неглубокую копию этого списка.

Construct(JniObjectReference, JniObjectReferenceOptions)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
Contains(Object)

Возвращает, true если этот список содержит указанный элемент.

ContainsAll(ICollection)

Возвращает, true содержит ли этот список все элементы указанной коллекции.

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
Equals(Object)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
ForEach(IConsumer)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

Get(Int32)

Добавление

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
IndexOf(Object, Int32)

Возвращает индекс первого вхождения указанного элемента в этом списке, выполняет поиск вперед indexили возвращает -1, если элемент не найден.

IndexOf(Object)

Добавление

Iterator()

Возвращает итератор по элементам в этом списке в правильной последовательности.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
LastIndexOf(Object, Int32)

Возвращает индекс последнего вхождения указанного элемента в этом списке, выполняя поиск назад или indexвозвращая -1, если элемент не найден.

LastIndexOf(Object)

Добавление

ListIterator()

Добавление

ListIterator(Int32)

Добавление

Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Remove(Int32)

Удаляет элемент в указанной позиции в этом списке.

Remove(Object)

Удаляет первое вхождение указанного элемента из этого списка, если он присутствует.

RemoveAll(ICollection)

Удаляет из этого списка все его элементы, содержащиеся в указанной коллекции.

RemoveFirst()

Добавление

RemoveIf(IPredicate)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

RemoveLast()

Добавление

ReplaceAll(IUnaryOperator)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

RetainAll(ICollection)

Сохраняет только элементы в этом списке, содержащиеся в указанной коллекции.

Reversed()

Добавление

Set(Int32, Object)

Заменяет элемент в указанной позиции в этом списке указанным элементом.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
Size()

Возвращает количество элементов в этом списке.

Sort(IComparator)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

Spliterator()

Spliterator Возвращает элементы в этом списке.

SubList(Int32, Int32)

Возвращает представление части этого списка между fromIndexинклюзивным и toIndexэксклюзивным.

ToArray()

Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента).

ToArray(Object[])

Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента); Тип среды выполнения возвращаемого массива — это тип указанного массива.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IJavaPeerable.Disposed()

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

ToEnumerable(IIterable)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

ToEnumerable<T>(IIterable)

Потокобезопасный вариант java.util.ArrayList , в котором реализуются все мутативные операции (addи setт. д.) путем создания новой копии базового массива.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к