Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class ConcurrentLinkedDeque<E> extends AbstractCollection<E> implements Deque<E>, Serializable
ConcurrentLinkedDeque
соответствующий выбор, когда много потоков совместно используют доступ к общему набору. Как большинство других параллельных реализаций набора, этот класс не разрешает использование null
элементы. Iterators являются слабо непротиворечивыми, возвращая элементы, отражающие состояние двухсторонней очереди в некоторый момент в или начиная с создания iterator. Они не бросают ConcurrentModificationException
, и может продолжиться одновременно с другими операциями.
Остерегайтесь этого, в отличие от этого в большинстве наборов, size
метод НЕ является постоянно-разовой работой. Из-за асинхронной природы этих двухсторонних очередей, определяя текущее число элементов требует обхода элементов, и так может сообщить о неточных результатах, если этот набор изменяется во время обхода. Дополнительно, объемные операции addAll
, removeAll
, retainAll
, containsAll
, equals
, и toArray
как гарантируют, не будут выполнены атомарно. Например, iterator, работающий одновременно с addAll
работа могла бы просмотреть только некоторые из добавленных элементов.
Этот класс и его iterator реализуют все дополнительные методы Deque
и Iterator
интерфейсы.
Эффекты непротиворечивости памяти: Как с другими параллельными наборами, действиями в потоке до размещения объекта в a ConcurrentLinkedDeque
произойдите - перед действиями, последующими за доступом или удалением того элемента от ConcurrentLinkedDeque
в другом потоке.
Этот класс является элементом Платформы Наборов Java.
Конструктор и Описание |
---|
ConcurrentLinkedDeque()
Создает пустую двухстороннюю очередь.
|
ConcurrentLinkedDeque(Collection<? extends E> c)
Создает двухстороннюю очередь, первоначально содержащую элементы данного набора, добавленного в порядке обхода iterator набора.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Вставляет указанный элемент в хвосте этой двухсторонней очереди.
|
boolean |
addAll(Collection<? extends E> c)
Добавляет все элементы в указанном наборе до конца этой двухсторонней очереди, в порядке, что они возвращаются iterator указанного набора.
|
void |
addFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди.
|
void |
addLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди.
|
void |
clear()
Удаляет все элементы от этой двухсторонней очереди.
|
boolean |
contains(Object o)
Возвраты
true если эта двухсторонняя очередь содержит по крайней мере один элемент e так, что o.equals(e) . |
Iterator<E> |
descendingIterator()
Возвращает iterator по элементам в этой двухсторонней очереди в обратном последовательном порядке.
|
E |
element()
Получает, но не удаляет, глава очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди).
|
E |
getFirst()
Получает, но не удаляет, первый элемент этой двухсторонней очереди.
|
E |
getLast()
Получает, но не удаляет, последний элемент этой двухсторонней очереди.
|
boolean |
isEmpty()
Возвраты
true если этот набор не содержит элементов. |
Iterator<E> |
iterator()
Возвращает iterator по элементам в этой двухсторонней очереди в надлежащей последовательности.
|
boolean |
offer(E e)
Вставляет указанный элемент в хвосте этой двухсторонней очереди.
|
boolean |
offerFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди.
|
boolean |
offerLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди.
|
E |
peek()
Получает, но не удаляет, глава очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
peekFirst()
Получает, но не удаляет, первый элемент этой двухсторонней очереди, или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
peekLast()
Получает, но не удаляет, последний элемент этой двухсторонней очереди, или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
poll()
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
pollFirst()
Получает и удаляет первый элемент этой двухсторонней очереди, или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
pollLast()
Получает и удаляет последний элемент этой двухсторонней очереди, или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
pop()
Выталкивает элемент от стека, представленного этой двухсторонней очередью.
|
void |
push(E e)
Продвигает элемент на стек, представленный этой двухсторонней очередью (другими словами, во главе этой двухсторонней очереди), если возможно сделать так сразу, не нарушая ограничения емкости, возвращая true на успех и бросая IllegalStateException, если никакое пространство не в настоящий момент доступно.
|
E |
remove()
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди).
|
boolean |
remove(Object o)
Удаляет первый элемент
e так, что o.equals(e) , если такой элемент существует в этой двухсторонней очереди. |
E |
removeFirst()
Получает и удаляет первый элемент этой двухсторонней очереди.
|
boolean |
removeFirstOccurrence(Object o)
Удаляет первый элемент
e так, что o.equals(e) , если такой элемент существует в этой двухсторонней очереди. |
E |
removeLast()
Получает и удаляет последний элемент этой двухсторонней очереди.
|
boolean |
removeLastOccurrence(Object o)
Удаляет последний элемент
e так, что o.equals(e) , если такой элемент существует в этой двухсторонней очереди. |
int |
size()
Возвращает число элементов в этой двухсторонней очереди.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой двухсторонней очереди, в надлежащей последовательности (от сначала, чтобы продлиться элемент).
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой двухсторонней очереди, в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
containsAll, removeAll, retainAll, toString
public ConcurrentLinkedDeque()
public ConcurrentLinkedDeque(Collection<? extends E> c)
c
- набор элементов, чтобы первоначально содержатьNullPointerException
- если указанный набор или какой-либо из его элементов являются нулемpublic void addFirst(E e)
IllegalStateException
.addFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьNullPointerException
- если указанный элемент является нулемpublic void addLast(E e)
IllegalStateException
. Этот метод эквивалентен add(E)
.
addLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьNullPointerException
- если указанный элемент является нулемpublic boolean offerFirst(E e)
false
.offerFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьtrue
(как определено Deque.offerFirst(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean offerLast(E e)
false
. Этот метод эквивалентен add(E)
.
offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьtrue
(как определено Deque.offerLast(E)
)NullPointerException
- если указанный элемент является нулемpublic E peekFirst()
Deque
public E peekLast()
Deque
public E getFirst()
Deque
peekFirst
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.getFirst
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E getLast()
Deque
peekLast
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.getLast
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E pollFirst()
Deque
public E pollLast()
Deque
public E removeFirst()
Deque
pollFirst
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.removeFirst
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E removeLast()
Deque
pollLast
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.removeLast
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic boolean offer(E e)
false
.offer
в интерфейсе Deque<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьtrue
(как определено Queue.offer(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean add(E e)
IllegalStateException
или возвратитесь false
.add
в интерфейсе Collection<E>
add
в интерфейсе Deque<E>
add
в интерфейсе Queue<E>
add
в классе AbstractCollection<E>
e
- элемент, присутствие которого в этом наборе должно быть обеспеченоtrue
(как определено Collection.add(E)
)NullPointerException
- если указанный элемент является нулемpublic E poll()
Deque
Этот метод эквивалентен Deque.pollFirst()
.
public E remove()
Deque
poll
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен Deque.removeFirst()
.
public E peek()
Deque
Этот метод эквивалентен Deque.peekFirst()
.
public E element()
Deque
peek
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен Deque.getFirst()
.
public void push(E e)
Deque
Этот метод эквивалентен Deque.addFirst(E)
.
public E pop()
Deque
Этот метод эквивалентен Deque.removeFirst()
.
public boolean removeFirstOccurrence(Object o)
e
так, что o.equals(e)
, если такой элемент существует в этой двухсторонней очереди. Если двухсторонняя очередь не содержит элемент, это неизменно.removeFirstOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если двухсторонняя очередь, содержавшая указанный элементNullPointerException
- если указанный элемент является нулемpublic boolean removeLastOccurrence(Object o)
e
так, что o.equals(e)
, если такой элемент существует в этой двухсторонней очереди. Если двухсторонняя очередь не содержит элемент, это неизменно.removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если двухсторонняя очередь, содержавшая указанный элементNullPointerException
- если указанный элемент является нулемpublic boolean contains(Object o)
true
если эта двухсторонняя очередь содержит по крайней мере один элемент e
так, что o.equals(e)
.contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
contains
в классе AbstractCollection<E>
o
- элемент, присутствие которого в этой двухсторонней очереди должно быть протестированоtrue
если эта двухсторонняя очередь содержит указанный элементpublic boolean isEmpty()
true
если этот набор не содержит элементов.isEmpty
в интерфейсе Collection<E>
isEmpty
в классе AbstractCollection<E>
true
если этот набор не содержит элементовpublic int size()
Integer.MAX_VALUE
элементы, это возвращается Integer.MAX_VALUE
. Остерегайтесь этого, в отличие от этого в большинстве наборов, этот метод НЕ является постоянно-разовой работой. Из-за асинхронной природы этих двухсторонних очередей, определяя текущее число элементов требует, чтобы пересечение их всех считало их. Дополнительно, для размера возможно измениться во время выполнения этого метода, когда возвращенный результат будет неточен. Таким образом этот метод обычно не очень полезен в параллельных приложениях.
size
в интерфейсе Collection<E>
size
в интерфейсе Deque<E>
size
в классе AbstractCollection<E>
public boolean remove(Object o)
e
так, что o.equals(e)
, если такой элемент существует в этой двухсторонней очереди. Если двухсторонняя очередь не содержит элемент, это неизменно.remove
в интерфейсе Collection<E>
remove
в интерфейсе Deque<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если двухсторонняя очередь, содержавшая указанный элементNullPointerException
- если указанный элемент является нулемpublic boolean addAll(Collection<? extends E> c)
addAll
из двухсторонней очереди, чтобы самостоятельно привести к IllegalArgumentException
.addAll
в интерфейсе Collection<E>
addAll
в классе AbstractCollection<E>
c
- элементы, которые будут вставлены в эту двухстороннюю очередьtrue
если эта двухсторонняя очередь изменилась в результате вызоваNullPointerException
- если указанный набор или какой-либо из его элементов являются нулемIllegalArgumentException
- если набор является этой двухсторонней очередьюAbstractCollection.add(Object)
public void clear()
clear
в интерфейсе Collection<E>
clear
в классе AbstractCollection<E>
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой двухсторонней очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в классе AbstractCollection<E>
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
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы двухсторонней очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой цельюArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой двухсторонней очередиNullPointerException
- если указанный массив является нулемpublic Iterator<E> iterator()
Возвращенный iterator "слабо непротиворечивый" iterator, который никогда не будет бросать ConcurrentModificationException
, и гарантии, чтобы пересечь элементы, поскольку они существовали на конструкцию iterator, и может (но не гарантироваться), отражают любые модификации, последующие за конструкцией.
public Iterator<E> descendingIterator()
Возвращенный iterator "слабо непротиворечивый" iterator, который никогда не будет бросать ConcurrentModificationException
, и гарантии, чтобы пересечь элементы, поскольку они существовали на конструкцию iterator, и может (но не гарантироваться), отражают любые модификации, последующие за конструкцией.
descendingIterator
в интерфейсе Deque<E>
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.