Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
В постоянное время работают size, isEmpty, get, set, iterator, и операции listIterator. Выполнения работы add в амортизируемое постоянное время, то есть, добавляя n элементы требуют O (n) время. Все другие операции, выполненные в линейное время (примерно говорящий). Постоянный множитель низок по сравнению с этим для реализации LinkedList.
У каждого экземпляра ArrayList есть емкость. Емкость является размером массива, используемого, чтобы сохранить элементы в списке. Это является всегда, по крайней мере, столь же большим как размер списка. Поскольку элементы добавляются к ArrayList, его емкость растет автоматически. Детали политики роста не определяются вне факта, что у добавления элемента есть постоянная амортизируемая стоимость времени.
Приложение может увеличить емкость экземпляра ArrayList прежде, чем добавить большое количество элементов, используя работу ensureCapacity. Это может уменьшить количество инкрементного перераспределения.
Отметьте, что эта реализация не синхронизируется. Если многократные потоки получают доступ к экземпляру ArrayList одновременно, и по крайней мере один из потоков изменяет список структурно, это должно синхронизироваться внешне. (Структурная модификация является любой работой, которая добавляет или удаляет один или более элементов, или явно изменяет размеры отступающего массива; просто установка значения элемента не является структурной модификацией.) Это обычно выполняется, синхронизируясь на некотором объекте, который естественно инкапсулирует список. Если никакой такой объект не существует, список должен быть "обернут", используя Collections.synchronizedList
метод. Это лучше всего делается во время создания, чтобы предотвратить случайный несинхронизируемый доступ к списку:
List list = Collections.synchronizedList(new ArrayList(...));
iterators возвратился этим class iterator
и listIterator
методы являются сбоем быстро: если список структурно изменяется когда-либо после того, как iterator создается, всегда кроме через собственный iterator's remove
или add
методы, iterator бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Приведите бросок iterators к сбою быстро ConcurrentModificationException
на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот class является элементом Платформы Наборов Java.
Collection
, List
, LinkedList
, Vector
, Сериализированная ФормаmodCount
Конструктор и Описание |
---|
ArrayList()
Создает пустой список с начальной емкостью десять.
|
ArrayList(Collection<? extends E> c)
Создает список, содержащий элементы указанного набора, в порядке, они возвращаются iterator набора.
|
ArrayList(int initialCapacity)
Создает пустой список с указанной начальной емкостью.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Добавляет указанный элемент до конца этого списка.
|
void |
add(int index, E element)
Вставляет указанный элемент в указанной позиции в этом списке.
|
boolean |
addAll(Collection<? extends E> c)
Добавляет все элементы в указанном наборе до конца этого списка, в порядке, что они возвращаются Iterator указанного набора.
|
boolean |
addAll(int index, Collection<? extends E> c)
Вставляет все элементы в указанном наборе в этот список, запускающийся в указанной позиции.
|
void |
clear()
Удаляет все элементы от этого списка.
|
Объект |
clone()
Возвращает мелкую копию этого экземпляра ArrayList.
|
boolean |
contains(Object o)
true возвратов, если этот список содержит указанный элемент.
|
void |
ensureCapacity(int minCapacity)
Увеличивает емкость этого экземпляра ArrayList, в случае необходимости, чтобы гарантировать, что это может содержать, по крайней мере, число элементов, определенное минимальным параметром емкости.
|
void |
forEach(Consumer<? super E> action)
Выполняет данное действие на содержании
Iterable , в порядке элементы происходят, выполняя итерации, пока все элементы не были обработаны, или действие выдает исключение. |
E |
get(int index)
Возвращает элемент в указанной позиции в этом списке.
|
int |
indexOf(Object o)
Возвращает индексирование первого возникновения указанного элемента в этом списке, или-1, если этот список не содержит элемент.
|
boolean |
isEmpty()
true возвратов, если этот список не содержит элементов.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этом списке в надлежащей последовательности.
|
int |
lastIndexOf(Object o)
Возвращает индексирование последнего вхождения указанного элемента в этом списке, или-1, если этот список не содержит элемент.
|
ListIterator<E> |
listIterator()
Возвращает список iterator по элементам в этом списке (в надлежащей последовательности).
|
ListIterator<E> |
listIterator(int index)
Возвращает список iterator по элементам в этом списке (в надлежащей последовательности), запускаясь в указанной позиции в списке.
|
E |
remove(int index)
Удаляет элемент в указанной позиции в этом списке.
|
boolean |
remove(Object o)
Удаляет первое возникновение указанного элемента от этого списка, если это присутствует.
|
boolean |
removeAll(Collection<?> c)
Удаляет из этого списка все его элементы, которые содержатся в указанном наборе.
|
boolean |
removeIf(Predicate<? super E> filter)
Удаляет все элементы этого набора, которые удовлетворяют данный предикат.
|
protected void |
removeRange(int fromIndex, int toIndex)
Удаляет из этого списка все элементы, чьи индексируют, между
fromIndex , включительно, и toIndex , монопольный. |
void |
replaceAll(UnaryOperator<E> operator)
Замены каждый элемент этого списка с результатом применения оператора к тому элементу.
|
boolean |
retainAll(Collection<?> c)
Сохраняет только элементы в этом списке, которые содержатся в указанном наборе.
|
E |
set(int index, E element)
Заменяет элемент в указанной позиции в этом списке с указанным элементом.
|
int |
size()
Возвращает число элементов в этом списке.
|
void |
sort(Comparator<? super E> c)
Сортирует этот список, используя предоставленный
Comparator сравнить элементы. |
Spliterator<E> |
spliterator()
Создает a
Spliterator по элементам в этом списке. |
List<E> |
subList(int fromIndex, int toIndex)
Возвращает представление части этого списка между указанным
fromIndex , включительно, и toIndex , монопольный. |
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этом списке в надлежащей последовательности (от сначала, чтобы продлиться элемент).
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этом списке в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
void |
trimToSize()
Обрезает емкость этого экземпляра ArrayList быть текущим размером списка.
|
equals, hashCode
containsAll, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
containsAll, equals, hashCode
parallelStream, stream
public ArrayList(int initialCapacity)
initialCapacity
- начальная емкость спискаIllegalArgumentException
- если указанная начальная емкость отрицательнаpublic ArrayList()
public ArrayList(Collection<? extends E> c)
c
- набор, элементы которого должны быть помещены в этот списокNullPointerException
- если указанный набор является нулемpublic void trimToSize()
public void ensureCapacity(int minCapacity)
minCapacity
- требуемая минимальная емкостьpublic int size()
size
в интерфейсе Collection<E>
size
в интерфейсе List<E>
size
в class AbstractCollection<E>
public boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
isEmpty
в интерфейсе List<E>
isEmpty
в class AbstractCollection<E>
public boolean contains(Object o)
contains
в интерфейсе Collection<E>
contains
в интерфейсе List<E>
contains
в class AbstractCollection<E>
o
- элемент, присутствие которого в этом списке должно быть протестированоpublic int indexOf(Object o)
public int lastIndexOf(Object o)
lastIndexOf
в интерфейсе List<E>
lastIndexOf
в class AbstractList<E>
o
- элемент, чтобы искатьpublic Object clone()
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим списком. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в class AbstractCollection<E>
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
Если список помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем список), элемент в массиве сразу после конца набора устанавливается в null. (Это полезно в определении длины списка, только если вызывающая сторона знает, что список не содержит нулевых элементов.)
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в class AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы списка, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом спискеNullPointerException
- если указанный массив является нулемpublic E get(int index)
get
в интерфейсе List<E>
get
в class AbstractList<E>
index
- индексируйте элемента, чтобы возвратитьсяIndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index >= size())public E set(int index, E element)
set
в интерфейсе List<E>
set
в class AbstractList<E>
index
- индексируйте элемента, чтобы заменитьelement
- элемент, который будет сохранен в указанной позицииIndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index >= size())public boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе List<E>
add
в class AbstractList<E>
e
- элемент, который будет добавлен к этому спискуCollection.add(E)
)public void add(int index, E element)
add
в интерфейсе List<E>
add
в class AbstractList<E>
index
- индексируйте, в котором должен быть вставлен указанный элементelement
- элемент, который будет вставленIndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index > size())public E remove(int index)
remove
в интерфейсе List<E>
remove
в class AbstractList<E>
index
- индексирование элемента, который будет удаленIndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index >= size())public boolean remove(Object o)
remove
в интерфейсе Collection<E>
remove
в интерфейсе List<E>
remove
в class AbstractCollection<E>
o
- элемент, который будет удален из этого списка, если существующийpublic void clear()
clear
в интерфейсе Collection<E>
clear
в интерфейсе List<E>
clear
в class AbstractList<E>
public boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
addAll
в интерфейсе List<E>
addAll
в class AbstractCollection<E>
c
- набор, содержащий элементы, которые будут добавлены к этому спискуNullPointerException
- если указанный набор является нулемAbstractCollection.add(Object)
public boolean addAll(int index, Collection<? extends E> c)
addAll
в интерфейсе List<E>
addAll
в class AbstractList<E>
index
- индексируйте, в котором можно вставить первый элемент от указанного набораc
- набор, содержащий элементы, которые будут добавлены к этому спискуIndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index > size())NullPointerException
- если указанный набор является нулемprotected void removeRange(int fromIndex, int toIndex)
fromIndex
, включительно, и toIndex
, монопольный. Сдвиги любые последующие элементы налево (уменьшает их индексировать). Этот вызов сокращает список (toIndex - fromIndex)
элементы. (Если toIndex==fromIndex
, эта работа не имеет никакого эффекта.)removeRange
в class AbstractList<E>
fromIndex
- индексируйте первого элемента, который будет удаленtoIndex
- индексируйте после последнего элемента, который будет удаленIndexOutOfBoundsException
- если fromIndex
или toIndex
испытывает недостаток диапазона (fromIndex < 0 || fromIndex >= size() || toIndex > size() || toIndex < fromIndex
)public boolean removeAll(Collection<?> c)
removeAll
в интерфейсе Collection<E>
removeAll
в интерфейсе List<E>
removeAll
в class AbstractCollection<E>
c
- набор, содержащий элементы, которые будут удалены из этого спискаtrue
если этот список изменился в результате вызоваClassCastException
- если class элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемCollection.contains(Object)
public boolean retainAll(Collection<?> c)
retainAll
в интерфейсе Collection<E>
retainAll
в интерфейсе List<E>
retainAll
в class AbstractCollection<E>
c
- набор, содержащий элементы, которые будут сохранены в этом спискеtrue
если этот список изменился в результате вызоваClassCastException
- если class элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемCollection.contains(Object)
public ListIterator<E> listIterator(int index)
next
. Начальный вызов previous
возвратился бы элемент с указанным индексируют минус один. Возвращенный список iterator является сбоем быстро.
listIterator
в интерфейсе List<E>
listIterator
в class AbstractList<E>
index
- индексируйте первого элемента, который будет возвращен из списка iterator (звонком next
)IndexOutOfBoundsException
- если индексирование испытывает недостаток диапазона (index < 0 || index > size()
)public ListIterator<E> listIterator()
Возвращенный список iterator является сбоем быстро.
listIterator
в интерфейсе List<E>
listIterator
в class AbstractList<E>
listIterator(int)
public Iterator<E> iterator()
Возвращенный iterator является сбоем быстро.
public List<E> subList(int fromIndex, int toIndex)
fromIndex
, включительно, и toIndex
, монопольный. (Если fromIndex
и toIndex
равны, возвращенный список пуст.) Возвращенный список поддерживается этим списком, таким образом, неструктурные изменения в возвращенном списке отражаются в этом списке, и наоборот. Возвращенный список поддерживает все дополнительные операции списка. Этот метод избавляет от необходимости явные операции диапазона (вида, которые обычно существуют для массивов). Любая работа, которая ожидает список, может использоваться в качестве работы диапазона, передавая представление подсписка вместо целого списка. Например, следующая идиома удаляет диапазон элементов от списка:
list.subList(from, to).clear();Подобные идиомы могут быть созданы для
indexOf(Object)
и lastIndexOf(Object)
, и все алгоритмы в Collections
class может быть применен к подсписку. Семантика списка, возвращенного этим методом, становится неопределенной, если отступающий список (то есть, этот список) структурно изменяются всегда кроме через возвращенный список. (Структурные модификации - те, которые изменяют размер этого списка, или иначе тревожат это таким способом, что происходящие итерации могут привести к неправильным результатам.)
subList
в интерфейсе List<E>
subList
в class AbstractList<E>
fromIndex
- низкая конечная точка (включительно) подспискаtoIndex
- высокая конечная точка (монопольная) из подспискаIndexOutOfBoundsException
- если конечная точка индексирует значение, испытывает недостаток диапазона (fromIndex < 0 || toIndex > size)
IllegalArgumentException
- если индексы конечной точки не в порядке (fromIndex > toIndex)
public void forEach(Consumer<? super E> action)
Iterable
Iterable
, в порядке элементы происходят, выполняя итерации, пока все элементы не были обработаны, или действие выдает исключение. Ошибки или исключения на этапе выполнения, брошенные действием, передаются к вызывающей стороне.public Spliterator<E> spliterator()
List
Spliterator
по элементам в этом списке. Spliterator
отчеты Spliterator.SIZED
и Spliterator.ORDERED
. Реализации должны задокументировать создание отчетов дополнительных характеристических значений.
spliterator
в интерфейсе Collection<E>
spliterator
в интерфейсе List<E>
Spliterator
по элементам в этом спискеpublic boolean removeIf(Predicate<? super E> filter)
Collection
removeIf
в интерфейсе Collection<E>
filter
- предикат, который возвращается true
для элементов, которые будут удаленыtrue
если какие-либо элементы были удаленыpublic void replaceAll(UnaryOperator<E> operator)
List
replaceAll
в интерфейсе List<E>
operator
- оператор, чтобы примениться к каждому элементуpublic void sort(Comparator<? super E> c)
List
Comparator
сравнить элементы.sort
в интерфейсе List<E>
c
- Comparator
используемый, чтобы сравнить элементы списка. A null
значение указывает, что естественное упорядочивание элементов должно использоваться
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92