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.Interop.IJavaPeerable, 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 IRandomAccess
- Наследование
- Атрибуты
- Реализации
Комментарии
Потокобезопасный вариант , java.util.ArrayList
в котором все мутативные операции (add
, set
и т. д.) реализуются путем создания новой копии базового массива.
Обычно это слишком затратно, но может быть <>более<> эффективным, чем альтернативы, когда операции обхода значительно превышают число изменений, и полезно, когда вы не можете или не хотите синхронизировать обходы, но при этом необходимо исключить помехи между параллельными потоками. Метод итератора стиля "snapshot" использует ссылку на состояние массива в точке создания итератора. Этот массив никогда не меняется в течение времени существования итератора, поэтому вмешательство невозможно, и итератор гарантированно не вызовет ConcurrentModificationException
. Итератор не будет отражать добавления, удаления или изменения в списке с момента создания итератора. Операции изменения элементов в самих итераторах (remove
, set
и add
) не поддерживаются. Эти методы вызывают исключение UnsupportedOperationException
.
Разрешены все элементы, включая null
.
Эффекты согласованности памяти. Как и в случае с другими параллельными коллекциями, действия в потоке перед помещением объекта в CopyOnWriteArrayList
<>i происходят после<> доступа или удаления этого элемента в другом потоке.CopyOnWriteArrayList
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.5.
Документация по Java для java.util.concurrent.CopyOnWriteArrayList
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Конструкторы
CopyOnWriteArrayList() |
Создает пустой список. |
CopyOnWriteArrayList(ICollection) |
Создает список, содержащий элементы указанной коллекции в том порядке, в котором они возвращаются итератором коллекции. |
CopyOnWriteArrayList(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
CopyOnWriteArrayList(Object[]) |
Создает список, содержащий копию заданного массива. |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEmpty |
Возвращает значение |
JniIdentityHashCode |
Потокобезопасный вариант , |
JniPeerMembers |
Потокобезопасный вариант , |
PeerReference |
Потокобезопасный вариант , |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Add(Int32, Object) |
Вставляет указанный элемент в указанную позицию в этом списке. |
Add(Object) |
Добавляет указанный элемент в конец этого списка. |
AddAll(ICollection) |
Добавляет все элементы в указанной коллекции в конец этого списка в том порядке, в который они возвращаются итератором указанной коллекции. |
AddAll(Int32, ICollection) |
Вставляет все элементы из указанной коллекции в этот список, начиная с указанной позиции. |
AddAllAbsent(ICollection) |
Добавляет все элементы в указанной коллекции, которые еще не содержатся в этом списке, в конец этого списка в том порядке, в котором они возвращаются итератором указанной коллекции. |
AddIfAbsent(Object) |
Добавляет элемент , если его нет. |
Clear() |
Удаляет все элементы из этого списка. |
Clone() |
Возвращает неполную копию этого списка. |
Contains(Object) |
Возвращает значение |
ContainsAll(ICollection) |
Возвращает значение |
Dispose() |
Потокобезопасный вариант , |
Dispose(Boolean) |
Потокобезопасный вариант , |
Equals(Object) |
Указывает, равен ли какой-то другой объект этому объекту. (Унаследовано от Object) |
ForEach(IConsumer) |
Потокобезопасный вариант , |
Get(Int32) |
Добавляемое |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
IndexOf(Object) |
Добавляемое |
IndexOf(Object, Int32) |
Возвращает индекс первого вхождения указанного элемента в этом списке, выполняет поиск вперед из |
Iterator() |
Возвращает итератор по элементам в этом списке в правильной последовательности. |
JavaFinalize() |
Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект . (Унаследовано от Object) |
LastIndexOf(Object) |
Добавляемое |
LastIndexOf(Object, Int32) |
Возвращает индекс последнего вхождения указанного элемента в этом списке с обратным поиском от |
ListIterator() |
Добавляемое |
ListIterator(Int32) |
Добавляемое |
Notify() |
Пробуждает один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
Remove(Int32) |
Удаляет элемент в указанной позиции в этом списке. |
Remove(Object) |
Удаляет первое вхождение указанного элемента из этого списка, если он присутствует. |
RemoveAll(ICollection) |
Удаляет из этого списка все его элементы, содержащиеся в указанной коллекции. |
RemoveIf(IPredicate) |
Потокобезопасный вариант , |
ReplaceAll(IUnaryOperator) |
Потокобезопасный вариант , |
RetainAll(ICollection) |
Сохраняет в этом списке только те элементы, которые содержатся в указанной коллекции. |
Set(Int32, Object) |
Заменяет элемент в указанной позиции в этом списке указанным элементом. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Возвращает количество элементов в этом списке. |
Sort(IComparator) |
Потокобезопасный вариант , |
Spliterator() |
Возвращает над |
SubList(Int32, Int32) |
Возвращает представление части этого списка между |
ToArray() |
Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента). |
ToArray(Object[]) |
Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого к последнему элементу); тип среды выполнения возвращаемого массива равен типу указанного массива. |
ToArray<T>() |
Потокобезопасный вариант , |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Потокобезопасный вариант , |
Wait() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от 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) |
Потокобезопасный вариант , |