Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class CopyOnWriteArrayList<E> extends Object implements List<E>, RandomAccess, Cloneable, Serializable
ArrayList
в котором все изменчивые операции (add, set, и так далее) реализуются, делая новую копию базового массива. Это является обычно слишком дорогостоящим, но может быть более эффективным чем альтернативы, когда операции обхода значительно превосходят численностью мутации, и полезно, когда Вы не можете или не хотеть синхронизировать обходы, все же должен устранить интерференцию среди параллельных потоков. Стиль "снимка" iterator метод использует ссылку на состояние массива в точке, что iterator создавался. Этот массив никогда не изменяется во время времени жизни iterator, столь интерференционный невозможно, и iterator, как гарантируют, не бросит ConcurrentModificationException. iterator не будет отражать дополнения, удаления, или изменяется на список, так как iterator создавался. Изменяющие элемент операции на iterators непосредственно (remove, set, и add) не поддерживаются. Эти методы бросают UnsupportedOperationException.
Все элементы разрешаются, включая null.
Эффекты непротиворечивости памяти: Как с другими параллельными наборами, действиями в потоке до размещения объекта в a CopyOnWriteArrayList
произойдите - перед действиями, последующими за доступом или удалением того элемента от CopyOnWriteArrayList
в другом потоке.
Этот класс является элементом Платформы Наборов Java.
Конструктор и Описание |
---|
CopyOnWriteArrayList()
Создает пустой список.
|
CopyOnWriteArrayList(Collection<? extends E> c)
Создает список, содержащий элементы указанного набора, в порядке, они возвращаются iterator набора.
|
CopyOnWriteArrayList(E[] toCopyIn)
Создает список, содержащий копию данного массива.
|
Модификатор и Тип | Метод и Описание |
---|---|
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)
Вставляет все элементы в указанном наборе в этот список, запускающийся в указанной позиции.
|
int |
addAllAbsent(Collection<? extends E> c)
Добавляет все элементы в указанном наборе, которые уже не содержатся в этом списке, до конца этого списка, в порядке, что они возвращаются iterator указанного набора.
|
boolean |
addIfAbsent(E e)
Добавьте элемент если не существующий.
|
void |
clear()
Удаляет все элементы от этого списка.
|
Объект |
clone()
Возвращает мелкую копию этого списка.
|
boolean |
contains(Object o)
true возвратов, если этот список содержит указанный элемент.
|
boolean |
containsAll(Collection<?> c)
true возвратов, если этот список содержит все элементы указанного набора.
|
boolean |
equals(Object o)
Сравнивает указанный объект с этим списком для равенства.
|
E |
get(int index)
Возвращает элемент в указанной позиции в этом списке.
|
int |
hashCode()
Возвращает значение хэш-кода для этого списка.
|
int |
indexOf(E e, int index)
Возвращает индекс первого возникновения указанного элемента в этом списке, ища вперед от index, или возвращается-1, если элемент не находится.
|
int |
indexOf(Object o)
Возвращает индекс первого возникновения указанного элемента в этом списке, или-1, если этот список не содержит элемент.
|
boolean |
isEmpty()
true возвратов, если этот список не содержит элементов.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этом списке в надлежащей последовательности.
|
int |
lastIndexOf(E e, int index)
Возвращает индекс последнего вхождения указанного элемента в этом списке, ища назад от index, или возвращается-1, если элемент не находится.
|
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 |
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)
Возвращает массив, содержащий все элементы в этом списке в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
Строка |
toString()
Возвращает строковое представление этого списка.
|
public CopyOnWriteArrayList()
public CopyOnWriteArrayList(Collection<? extends E> c)
c
- набор первоначально сохраненных элементовNullPointerException
- если указанный набор является нулемpublic CopyOnWriteArrayList(E[] toCopyIn)
toCopyIn
- массив (копия этого массива используется в качестве внутреннего массива),NullPointerException
- если указанный массив является нулемpublic int size()
public boolean isEmpty()
public boolean contains(Object o)
public int indexOf(Object o)
public int indexOf(E e, int index)
e
- элемент, чтобы искатьindex
- индексируйте, чтобы начать искать отIndexOutOfBoundsException
- если указанный индекс отрицателенpublic int lastIndexOf(Object o)
lastIndexOf
в интерфейсе List<E>
o
- элемент, чтобы искатьpublic int lastIndexOf(E e, int index)
e
- элемент, чтобы искатьindex
- индексируйте, чтобы начать искать назад отIndexOutOfBoundsException
- если указанный индекс больше чем или равен текущему размеру этого спискаpublic Object clone()
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим списком. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
Если этот список помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем этот список), элемент в массиве сразу после конца списка устанавливается в null. (Это полезно в определении длины этого списка, только если вызывающая сторона знает, что этот список не содержит нулевых элементов.)
Как toArray()
метод, этот метод действует как мост между основанными на массиве и основанными на наборе API. Далее, этот метод позволяет точное управление типом времени выполнения выходного массива, и, при определенных обстоятельствах, может использоваться, чтобы сохранить затраты выделения.
Предположите, что x является списком, который, как известно, содержал только строки. Следующий код может использоваться, чтобы вывести список в недавно выделенный массив String:
String[] y = x.toArray(new String[0]);Отметьте, что toArray(new Object[0]) идентичен в функции toArray().
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
a
- массив, в который должны быть сохранены элементы списка, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом спискеNullPointerException
- если указанный массив является нулемpublic E get(int index)
get
в интерфейсе List<E>
index
- индекс элемента, чтобы возвратитьсяIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public E set(int index, E element)
set
в интерфейсе List<E>
index
- индекс элемента, чтобы заменитьelement
- элемент, который будет сохранен в указанной позицииIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе List<E>
e
- элемент, который будет добавлен к этому спискуCollection.add(E)
)public void add(int index, E element)
add
в интерфейсе List<E>
index
- индекс, по которому должен быть вставлен указанный элементelement
- элемент, который будет вставленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())public E remove(int index)
remove
в интерфейсе List<E>
index
- индекс элемента, который будет удаленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public boolean remove(Object o)
public boolean addIfAbsent(E e)
e
- элемент, который будет добавлен к этому списку, если отсутствующийpublic boolean containsAll(Collection<?> c)
containsAll
в интерфейсе Collection<E>
containsAll
в интерфейсе List<E>
c
- набор, который будет проверен на включение в этом спискеNullPointerException
- если указанный набор является нулемcontains(Object)
public boolean removeAll(Collection<?> c)
removeAll
в интерфейсе Collection<E>
removeAll
в интерфейсе List<E>
c
- набор, содержащий элементы, которые будут удалены из этого спискаClassCastException
- если класс элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
public boolean retainAll(Collection<?> c)
retainAll
в интерфейсе Collection<E>
retainAll
в интерфейсе List<E>
c
- набор, содержащий элементы, которые будут сохранены в этом спискеClassCastException
- если класс элемента этого списка является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот список содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
public int addAllAbsent(Collection<? extends E> c)
c
- набор, содержащий элементы, которые будут добавлены к этому спискуNullPointerException
- если указанный набор является нулемaddIfAbsent(Object)
public void clear()
public boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
addAll
в интерфейсе List<E>
c
- набор, содержащий элементы, которые будут добавлены к этому спискуNullPointerException
- если указанный набор является нулемadd(Object)
public boolean addAll(int index, Collection<? extends E> c)
addAll
в интерфейсе List<E>
index
- индекс, по которому можно вставить первый элемент от указанного набораc
- набор, содержащий элементы, которые будут добавлены к этому спискуIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())NullPointerException
- если указанный набор является нулемadd(int,Object)
public String toString()
String.valueOf(Object)
.public boolean equals(Object o)
true
если указанный объект является тем же самым объектом как этот объект, или если это также a List
и последовательность элементов, возвращенных iterator по указанному списку, является тем же самым как последовательностью, возвращенной iterator по этому списку. Эти две последовательности, как полагают, являются тем же самым, если у них есть та же самая длина, и соответствующие элементы в той же самой позиции в последовательности равны. Два элемента e1
и e2
считаются равными если (e1==null ? e2==null : e1.equals(e2))
.equals
в интерфейсе Collection<E>
equals
в интерфейсе List<E>
equals
в классе Object
o
- объект, который будет сравнен для равенства с этим спискомtrue
если указанный объект равен этому спискуObject.hashCode()
, HashMap
public int hashCode()
Эта реализация использует определение в List.hashCode()
.
hashCode
в интерфейсе Collection<E>
hashCode
в интерфейсе List<E>
hashCode
в классе Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public Iterator<E> iterator()
Возвращенный iterator обеспечивает снимок состояния списка, когда iterator был создан. Никакая синхронизация не необходима, пересекая iterator. iterator НЕ поддерживает метод remove.
public ListIterator<E> listIterator()
Возвращенный iterator обеспечивает снимок состояния списка, когда iterator был создан. Никакая синхронизация не необходима, пересекая iterator. iterator НЕ поддерживает remove, методы set ИЛИ add.
listIterator
в интерфейсе List<E>
public ListIterator<E> listIterator(int index)
next
. Начальный вызов previous
возвратил бы элемент с указанным индексом минус один. Возвращенный iterator обеспечивает снимок состояния списка, когда iterator был создан. Никакая синхронизация не необходима, пересекая iterator. iterator НЕ поддерживает remove, методы set ИЛИ add.
listIterator
в интерфейсе List<E>
index
- индекс первого элемента, который будет возвращен из списка iterator (звонком next
)IndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size()
)public List<E> subList(int fromIndex, int toIndex)
Семантика списка, возвращенного этим методом, становится неопределенной, если отступающий список (то есть, этот список) изменяются всегда кроме через возвращенный список.
subList
в интерфейсе List<E>
fromIndex
- низкая конечная точка (включительно) подспискаtoIndex
- высокая конечная точка (монопольная) из подспискаIndexOutOfBoundsException
- поскольку недопустимая конечная точка индексирует значение (fromIndex < 0 || toIndex > size || fromIndex > toIndex)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.