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
- Наследование
- Атрибуты
- Реализации
Комментарии
Потокобезопасный вариант 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 |
Возвращает класс среды выполнения этого |
| First |
Добавление |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Возвращает, |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Потокобезопасный вариант |
| JniPeerMembers |
Потокобезопасный вариант |
| 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) |
Потокобезопасный вариант |
| Contains(Object) |
Возвращает, |
| ContainsAll(ICollection) |
Возвращает, |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Потокобезопасный вариант |
| Equals(Object) |
Потокобезопасный вариант |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| ForEach(IConsumer) |
Потокобезопасный вариант |
| Get(Int32) |
Добавление |
| GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
| IndexOf(Object, Int32) |
Возвращает индекс первого вхождения указанного элемента в этом списке, выполняет поиск вперед |
| IndexOf(Object) |
Добавление |
| Iterator() |
Возвращает итератор по элементам в этом списке в правильной последовательности. |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| LastIndexOf(Object, Int32) |
Возвращает индекс последнего вхождения указанного элемента в этом списке, выполняя поиск назад или |
| LastIndexOf(Object) |
Добавление |
| ListIterator() |
Добавление |
| ListIterator(Int32) |
Добавление |
| Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Remove(Int32) |
Удаляет элемент в указанной позиции в этом списке. |
| Remove(Object) |
Удаляет первое вхождение указанного элемента из этого списка, если он присутствует. |
| RemoveAll(ICollection) |
Удаляет из этого списка все его элементы, содержащиеся в указанной коллекции. |
| RemoveFirst() |
Добавление |
| RemoveIf(IPredicate) |
Потокобезопасный вариант |
| RemoveLast() |
Добавление |
| ReplaceAll(IUnaryOperator) |
Потокобезопасный вариант |
| RetainAll(ICollection) |
Сохраняет только элементы в этом списке, содержащиеся в указанной коллекции. |
| Reversed() |
Добавление |
| Set(Int32, Object) |
Заменяет элемент в указанной позиции в этом списке указанным элементом. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Потокобезопасный вариант |
| Size() |
Возвращает количество элементов в этом списке. |
| Sort(IComparator) |
Потокобезопасный вариант |
| Spliterator() |
|
| SubList(Int32, Int32) |
Возвращает представление части этого списка между |
| 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() |
Потокобезопасный вариант |
| IJavaPeerable.Finalized() |
Потокобезопасный вариант |
| IJavaPeerable.JniObjectReferenceControlBlock |
Потокобезопасный вариант |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Потокобезопасный вариант |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Потокобезопасный вариант |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Потокобезопасный вариант |
| IJavaPeerable.UnregisterFromRuntime() |
Потокобезопасный вариант |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Потокобезопасный вариант |
| ToEnumerable(IIterable) |
Потокобезопасный вариант |
| ToEnumerable<T>(IIterable) |
Потокобезопасный вариант |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |