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 возвратился этим классом iterator
и listIterator
методы являются сбоем быстро: если список структурно изменяется когда-либо после того, как iterator создается, всегда кроме через собственный iterator's remove
или add
методы, iterator бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Приведите бросок iterators к сбою быстро ConcurrentModificationException
на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот класс является элементом Платформы Наборов 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, в случае необходимости, чтобы гарантировать, что это может содержать, по крайней мере, число элементов, определенное минимальным параметром емкости.
|
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)
Удаляет из этого списка все его элементы, которые содержатся в указанном наборе.
|
protected void |
removeRange(int fromIndex, int toIndex)
Удаляет из этого списка все элементы, индекс которых между
fromIndex , включительно, и toIndex , монопольный. |
boolean |
retainAll(Collection<?> c)
Сохраняет только элементы в этом списке, которые содержатся в указанном наборе.
|
E |
set(int index, E element)
Заменяет элемент в указанной позиции в этом списке с указанным элементом.
|
int |
size()
Возвращает число элементов в этом списке.
|
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
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
в классе AbstractCollection<E>
public boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
isEmpty
в интерфейсе List<E>
isEmpty
в классе AbstractCollection<E>
public boolean contains(Object o)
contains
в интерфейсе Collection<E>
contains
в интерфейсе List<E>
contains
в классе AbstractCollection<E>
o
- элемент, присутствие которого в этом списке должно быть протестированоpublic int indexOf(Object o)
public int lastIndexOf(Object o)
lastIndexOf
в интерфейсе List<E>
lastIndexOf
в классе AbstractList<E>
o
- элемент, чтобы искатьpublic Object clone()
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим списком. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в классе AbstractCollection<E>
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
Если список помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем список), элемент в массиве сразу после конца набора устанавливается в null. (Это полезно в определении длины списка, только если вызывающая сторона знает, что список не содержит нулевых элементов.)
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы списка, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом спискеNullPointerException
- если указанный массив является нулемpublic E get(int index)
get
в интерфейсе List<E>
get
в классе AbstractList<E>
index
- индекс элемента, чтобы возвратитьсяIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public E set(int index, E element)
set
в интерфейсе List<E>
set
в классе AbstractList<E>
index
- индекс элемента, чтобы заменитьelement
- элемент, который будет сохранен в указанной позицииIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе List<E>
add
в классе AbstractList<E>
e
- элемент, который будет добавлен к этому спискуCollection.add(E)
)public void add(int index, E element)
add
в интерфейсе List<E>
add
в классе AbstractList<E>
index
- индекс, по которому должен быть вставлен указанный элементelement
- элемент, который будет вставленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())public E remove(int index)
remove
в интерфейсе List<E>
remove
в классе AbstractList<E>
index
- индекс элемента, который будет удаленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public boolean remove(Object o)
remove
в интерфейсе Collection<E>
remove
в интерфейсе List<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этого списка, если существующийpublic void clear()
clear
в интерфейсе Collection<E>
clear
в интерфейсе List<E>
clear
в классе AbstractList<E>
public boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
addAll
в интерфейсе List<E>
addAll
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут добавлены к этому спискуNullPointerException
- если указанный набор является нулемAbstractCollection.add(Object)
public boolean addAll(int index, Collection<? extends E> c)
addAll
в интерфейсе List<E>
addAll
в классе AbstractList<E>
index
- индекс, по которому можно вставить первый элемент от указанного набораc
- набор, содержащий элементы, которые будут добавлены к этому спискуIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())NullPointerException
- если указанный набор является нулемprotected void removeRange(int fromIndex, int toIndex)
fromIndex
, включительно, и toIndex
, монопольный. Сдвиги любые последующие элементы налево (уменьшает их индекс). Этот вызов сокращает список (toIndex - fromIndex)
элементы. (Если toIndex==fromIndex
, эта работа не имеет никакого эффекта.)removeRange
в классе 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
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут удалены из этого спискаtrue
если этот список изменился в результате вызоваClassCastException
- если класс элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемCollection.contains(Object)
public boolean retainAll(Collection<?> c)
retainAll
в интерфейсе Collection<E>
retainAll
в интерфейсе List<E>
retainAll
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут сохранены в этом спискеtrue
если этот список изменился в результате вызоваClassCastException
- если класс элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемCollection.contains(Object)
public ListIterator<E> listIterator(int index)
next
. Начальный вызов previous
возвратил бы элемент с указанным индексом минус один. Возвращенный список iterator является сбоем быстро.
listIterator
в интерфейсе List<E>
listIterator
в классе AbstractList<E>
index
- индекс первого элемента, который будет возвращен из списка iterator (звонком next
)IndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size()
)public ListIterator<E> listIterator()
Возвращенный список iterator является сбоем быстро.
listIterator
в интерфейсе List<E>
listIterator
в классе 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
класс может быть применен к подсписку. Семантика списка, возвращенного этим методом, становится неопределенной, если отступающий список (то есть, этот список) структурно изменяются всегда кроме через возвращенный список. (Структурные модификации - те, которые изменяют размер этого списка, или иначе тревожат это таким способом, что происходящие итерации могут привести к неправильным результатам.)
subList
в интерфейсе List<E>
subList
в классе AbstractList<E>
fromIndex
- низкая конечная точка (включительно) подспискаtoIndex
- высокая конечная точка (монопольная) из подспискаIndexOutOfBoundsException
- если индексное значение конечной точки испытывает недостаток диапазона (fromIndex < 0 || toIndex > size)
IllegalArgumentException
- если индексы конечной точки не в порядке (fromIndex > toIndex)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.