ArrayList Класс

Определение

Реализация интерфейса с изменяемым размером массива List .

[Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ArrayList : Java.Util.AbstractList, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ArrayList = class
    inherit AbstractList
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IList
    interface ICollection
    interface IIterable
    interface IRandomAccess
Наследование
Атрибуты
Реализации

Комментарии

Реализация интерфейса с изменяемым размером массива List . Реализует все необязательные операции со списками и разрешает все элементы, включая null. Помимо реализации List интерфейса, этот класс предоставляет методы для управления размером массива, который используется для внутреннего хранения списка. (Этот класс примерно эквивалентен Vector, за исключением того, что он несинхронизирован.)

Операции size, isEmpty, get, set, iteratorи listIterator выполняются в течение постоянного времени. Операция add выполняется в амортизированном константном времени, то есть для добавления n элементов требуется время O(n). Все остальные операции выполняются в линейное время (грубо говоря). Коэффициент константы низкий по сравнению с коэффициентом LinkedList для реализации.

Каждый ArrayList экземпляр имеет емкость. Емкость — это размер массива, используемого для хранения элементов в списке. Он всегда по крайней мере равен размеру списка. По мере добавления элементов в ArrayList его емкость увеличивается автоматически. Сведения о политике роста не указываются помимо того, что добавление элемента имеет постоянные амортизированные временные затраты.

Приложение может увеличить емкость экземпляра ArrayList перед добавлением большого количества элементов с помощью ensureCapacity операции . Это может уменьшить объем добавочного перераспределения.

<strong>Обратите внимание, что эта реализация не синхронизирована.</strong> Если несколько потоков обращаются к экземпляру ArrayList одновременно и по крайней мере один из потоков изменяет список структурно, он должен быть синхронизирован извне. (Структурное изменение — это любая операция, которая добавляет или удаляет один или несколько элементов или явно изменяет размер резервного массива. Простое задание значения элемента не является структурным изменением.) Обычно это выполняется путем синхронизации с каким-то объектом, который естественным образом инкапсулирует список.

Если такого объекта не существует, список должен быть "упакован" с помощью Collections#synchronizedList Collections.synchronizedList метода . Это лучше всего делать во время создания, чтобы предотвратить случайный несинхронизированный доступ к списку:

List list = Collections.synchronizedList(new ArrayList(...));

<p id="fail-fast"> Итераторы, возвращаемые методами и #listIterator(int) listIterator этого класса#iterator() iterator, являются <em>fail-fast</em>: если список структурно изменяется в любое время после создания итератора, любым способом, кроме собственных методов или ListIterator#add(Object) add итератораListIterator#remove() remove, итератор вызовет ConcurrentModificationExceptionисключение . Таким образом, перед лицом параллельного изменения итератор быстро и чисто завершает работу, а не рискует произвольным, недетерминированным поведением в неопределенное время в будущем.

Обратите внимание, что быстрое поведение итератора не может быть гарантировано, так как в целом невозможно сделать какие-либо жесткие гарантии при наличии несинхронизированных одновременных изменений. Отказоустойчивые итераторы создаются ConcurrentModificationException на основе наилучших усилий. Поэтому было бы неправильно писать программу, которая зависит от этого исключения из-за его правильности: быстрое поведение итераторов должно использоваться только для обнаружения ошибок.

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

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

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

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

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

ArrayList()

Создает пустой список с начальной емкостью в десять.

ArrayList(ICollection)

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

ArrayList(Int32)

Создает пустой список с указанной начальной емкостью.

ArrayList(IntPtr, JniHandleOwnership)

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

Свойства

Class

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

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

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

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

Добавляемое

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

ModCount

Количество структурных изменений этого списка.

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

Реализация интерфейса с изменяемым размером массива List .

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

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

ThresholdType

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

Методы

Add(Int32, Object)

Добавляемое

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

Добавляемое

(Унаследовано от AbstractCollection)
AddAll(ICollection)

Добавляемое

(Унаследовано от AbstractCollection)
AddAll(Int32, ICollection)

Добавляемое

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

Добавляемое

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

Возвращает неполную копию этого ArrayList экземпляра.

Contains(Object)

Добавляемое

(Унаследовано от AbstractCollection)
ContainsAll(ICollection)

Добавляемое

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

При необходимости увеличивает емкость этого ArrayList экземпляра, чтобы гарантировать, что он может содержать по крайней мере количество элементов, указанных аргументом минимальной емкости.

Equals(Object)

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

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

Реализация интерфейса с изменяемым размером массива List .

Get(Int32)

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

GetHashCode()

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

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

Добавляемое

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

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

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

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

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

Добавляемое

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

Добавляемое

(Унаследовано от AbstractList)
ListIterator(Int32)

Добавляемое

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

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

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

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

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

Добавляемое

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

Добавляемое

(Унаследовано от AbstractCollection)
RemoveAll(ICollection)

Добавляемое

(Унаследовано от AbstractCollection)
RemoveIf(IPredicate)

Реализация интерфейса с изменяемым размером массива List .

RemoveRange(Int32, Int32)

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

(Унаследовано от AbstractList)
ReplaceAll(IUnaryOperator)

Реализация интерфейса с изменяемым размером массива List .

RetainAll(ICollection)

Добавляемое

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

Добавляемое

(Унаследовано от AbstractList)
SetHandle(IntPtr, JniHandleOwnership)

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

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

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

Sort(IComparator)

Реализация интерфейса с изменяемым размером массива List .

Spliterator()

Создает em>late-binding<</em> и <em>fail-fast</em>Spliterator над элементами в этом списке.

SubList(Int32, Int32)

Добавляемое

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

Добавляемое

(Унаследовано от AbstractCollection)
ToArray(Object[])

Добавляемое

(Унаследовано от AbstractCollection)
ToArray<T>()

Реализация интерфейса с изменяемым размером массива List .

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

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

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

Сокращает емкость этого ArrayList экземпляра до текущего размера списка.

UnregisterFromRuntime()

Реализация интерфейса с изменяемым размером массива List .

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

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

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

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

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

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

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

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

IJavaPeerable.Disposed()

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

Реализация интерфейса с изменяемым размером массива List .

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Реализация интерфейса с изменяемым размером массива List .

GetJniTypeName(IJavaPeerable)

Реализация интерфейса с изменяемым размером массива List .

ToEnumerable(IIterable)

Реализация интерфейса с изменяемым размером массива List .

ToEnumerable<T>(IIterable)

Реализация интерфейса с изменяемым размером массива List .

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