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.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 ISequencedCollection
interface IRandomAccess
- Наследование
- Атрибуты
- Реализации
Комментарии
Изменение размера реализации List интерфейса с возможностью изменения размера. Реализует все необязательные операции списка и разрешает все элементы, включая null. Помимо реализации List интерфейса, этот класс предоставляет методы для управления размером массива, который используется внутренне для хранения списка. (Этот класс примерно эквивалентен Vector, за исключением того, что он несинхронизирован.)
Операции size, , isEmptyи getsetiteratorlistIterator операции выполняются в постоянное время. Операция add выполняется в амортизированном времени константы, то есть добавление n элементов требует времени O(n). Все остальные операции выполняются в линейном времени (примерно говоря). Константный фактор низкий по сравнению с тем, что для LinkedList реализации.
Каждый ArrayList экземпляр имеет емкость. Емкость — это размер массива, используемого для хранения элементов в списке. Он всегда имеет по крайней мере размер списка. При добавлении элементов в ArrayList его емкость увеличивается автоматически. Сведения о политике роста не указываются за пределами того факта, что добавление элемента имеет постоянные амортизированные затраты на время.
Приложение может увеличить емкость экземпляра перед добавлением большого ArrayList количества элементов с помощью ensureCapacity операции. Это может уменьшить количество добавочных перемещений.
<Обратите>внимание, что эта реализация не синхронизирована.</strong> , если несколько потоков одновременно обращаются к ArrayList экземпляру, а по крайней мере один из потоков изменяет список структурно, он должен быть синхронизирован внешне. (Структурные изменения — это любая операция, которая добавляет или удаляет один или несколько элементов или явно изменяет размер резервного массива; просто установка значения элемента не является структурным изменением.) Обычно это достигается путем синхронизации с некоторым объектом, который естественно инкапсулирует список.
Если такой объект не существует, список должен быть "упакован" с помощью Collections#synchronizedList Collections.synchronizedList метода. Это лучше всего сделать во время создания, чтобы предотвратить случайный несинхронизированный доступ к списку:
List list = Collections.synchronizedList(new ArrayList(...));
Итераторы, возвращаемые этим классом #iterator() iterator и #listIterator(int) listIterator методами, являются <em-fail-fast></em>: если список структурно изменяется в любое время после создания итератора, в любом случае, за исключением собственных ListIterator#remove() remove или ListIterator#add(Object) add методов итератора, итератор вызовет ConcurrentModificationExceptionитератор. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем.
Обратите внимание, что поведение итератора не может быть гарантировано, как правило, невозможно сделать какие-либо жесткие гарантии в присутствии несинхронизированных одновременных изменений. Отработки отказа быстрой итерации создаются ConcurrentModificationException на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: поведение итераторов должно использоваться только для обнаружения ошибок.
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.2.
Java документации по java.util.ArrayList.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| ArrayList() |
Создает пустой список с начальной емкостью 10. |
| ArrayList(ICollection) |
Создает список, содержащий элементы указанной коллекции, в том порядке, в котором они возвращаются итератором коллекции. |
| ArrayList(Int32) |
Создает пустой список с указанной начальной емкостью. |
| ArrayList(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| First |
Добавление |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Добавление (Унаследовано от AbstractCollection) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Изменение размера реализации |
| JniPeerMembers |
Изменение размера реализации |
| Last |
Добавление |
| ModCount |
Количество раз, когда этот список был структурно изменен. (Унаследовано от AbstractList) |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Add(Int32, Object) |
Добавление (Унаследовано от AbstractList) |
| Add(Object) |
Добавление (Унаследовано от AbstractCollection) |
| AddAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| AddAll(Int32, ICollection) |
Добавление (Унаследовано от AbstractList) |
| AddFirst(Object) |
Добавление |
| AddLast(Object) |
Добавление |
| Clear() |
Добавление (Унаследовано от AbstractCollection) |
| Clone() |
Возвращает неглубокую копию этого |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Изменение размера реализации |
| Contains(Object) |
Добавление (Унаследовано от AbstractCollection) |
| ContainsAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Изменение размера реализации |
| EnsureCapacity(Int32) |
При необходимости увеличивает емкость этого |
| Equals(Object) |
Изменение размера реализации |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| ForEach(IConsumer) |
Изменение размера реализации |
| 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) |
| RemoveFirst() |
Добавление |
| RemoveIf(IPredicate) |
Изменение размера реализации |
| RemoveLast() |
Добавление |
| RemoveRange(Int32, Int32) |
Удаляет из этого списка все элементы, индекс которых находится между |
| ReplaceAll(IUnaryOperator) |
Изменение размера реализации |
| RetainAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Set(Int32, Object) |
Добавление (Унаследовано от AbstractList) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Изменение размера реализации |
| Size() |
Возвращает количество элементов в этом списке. |
| Sort(IComparator) |
Изменение размера реализации |
| Spliterator() |
<
>Создает em late-binding</em> и <em-fail-fast></em> |
| SubList(Int32, Int32) |
Добавление (Унаследовано от AbstractList) |
| ToArray() |
Добавление (Унаследовано от AbstractCollection) |
| ToArray(Object[]) |
Добавление (Унаследовано от AbstractCollection) |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| TrimToSize() |
Обрезает емкость этого |
| 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) |
Возвращает итерацию IEnumerable по JavaIIterable, позволяя |
| ToEnumerable<T>(IIterable) |
Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |