| |
|
| java.util.ArrayDeque
ArrayDeque | public class ArrayDeque extends AbstractCollection implements Deque<E>,Cloneable,Serializable(Code) | | Resizable-array implementation of the
Deque interface. Array
deques have no capacity restrictions; they grow as necessary to support
usage. They are not thread-safe; in the absence of external
synchronization, they do not support concurrent access by multiple threads.
Null elements are prohibited. This class is likely to be faster than
Stack when used as a stack, and faster than
LinkedList when used as a queue.
Most ArrayDeque operations run in amortized constant time.
Exceptions include
ArrayDeque.remove(Object) remove ,
ArrayDeque.removeFirstOccurrence removeFirstOccurrence ,
ArrayDeque.removeLastOccurrenceremoveLastOccurrence ,
ArrayDeque.contains contains ,
ArrayDeque.iteratoriterator.remove() , and the bulk operations, all of which run in linear
time.
The iterators returned by this class's iterator method are
fail-fast: If the deque is modified at any time after the iterator
is created, in any way except through the iterator's own remove
method, the iterator will generally throw a
ConcurrentModificationException . Thus, in the face of concurrent
modification, the iterator fails quickly and cleanly, rather than risking
arbitrary, non-deterministic behavior at an undetermined time in the
future.
Note that the fail-fast behavior of an iterator cannot be guaranteed
as it is, generally speaking, impossible to make any hard guarantees in the
presence of unsynchronized concurrent modification. Fail-fast iterators
throw ConcurrentModificationException on a best-effort basis.
Therefore, it would be wrong to write a program that depended on this
exception for its correctness: the fail-fast behavior of iterators
should be used only to detect bugs.
This class and its iterator implement all of the
optional methods of the
Collection and
Iterator interfaces.
This class is a member of the
Java Collections Framework.
author: Josh Bloch and Doug Lea since: 1.6< Parameters: E - > the type of elements held in this collection |
Constructor Summary | |
public | ArrayDeque() Constructs an empty array deque with an initial capacity
sufficient to hold 16 elements. | public | ArrayDeque(int numElements) Constructs an empty array deque with an initial capacity
sufficient to hold the specified number of elements. | public | ArrayDeque(Collection<? extends E> c) Constructs a deque containing the elements of the specified
collection, in the order they are returned by the collection's
iterator. |
Method Summary | |
public boolean | add(E e) Inserts the specified element at the end of this deque. | public void | addFirst(E e) Inserts the specified element at the front of this deque. | public void | addLast(E e) Inserts the specified element at the end of this deque. | public void | clear() Removes all of the elements from this deque. | public ArrayDeque<E> | clone() Returns a copy of this deque. | public boolean | contains(Object o) Returns true if this deque contains the specified element. | public Iterator<E> | descendingIterator() | public E | element() Retrieves, but does not remove, the head of the queue represented by
this deque. | public E | getFirst() | public E | getLast() | public boolean | isEmpty() Returns true if this deque contains no elements. | public Iterator<E> | iterator() Returns an iterator over the elements in this deque. | public boolean | offer(E e) Inserts the specified element at the end of this deque. | public boolean | offerFirst(E e) Inserts the specified element at the front of this deque. | public boolean | offerLast(E e) Inserts the specified element at the end of this deque. | public E | peek() Retrieves, but does not remove, the head of the queue represented by
this deque, or returns null if this deque is empty. | public E | peekFirst() | public E | peekLast() | public E | poll() Retrieves and removes the head of the queue represented by this deque
(in other words, the first element of this deque), or returns
null if this deque is empty. | public E | pollFirst() | public E | pollLast() | public E | pop() Pops an element from the stack represented by this deque. | public void | push(E e) Pushes an element onto the stack represented by this deque. | public E | remove() Retrieves and removes the head of the queue represented by this deque. | public boolean | remove(Object o) Removes a single instance of the specified element from this deque. | public E | removeFirst() | public boolean | removeFirstOccurrence(Object o) Removes the first occurrence of the specified element in this
deque (when traversing the deque from head to tail). | public E | removeLast() | public boolean | removeLastOccurrence(Object o) Removes the last occurrence of the specified element in this
deque (when traversing the deque from head to tail). | public int | size() Returns the number of elements in this deque. | public Object[] | toArray() Returns an array containing all of the elements in this deque
in proper sequence (from first to last element).
The returned array will be "safe" in that no references to it are
maintained by this deque. | public T[] | toArray(T[] a) Returns an array containing all of the elements in this deque in
proper sequence (from first to last element); the runtime type of the
returned array is that of the specified array. |
ArrayDeque | public ArrayDeque()(Code) | | Constructs an empty array deque with an initial capacity
sufficient to hold 16 elements.
|
ArrayDeque | public ArrayDeque(int numElements)(Code) | | Constructs an empty array deque with an initial capacity
sufficient to hold the specified number of elements.
Parameters: numElements - lower bound on initial capacity of the deque |
ArrayDeque | public ArrayDeque(Collection<? extends E> c)(Code) | | Constructs a deque containing the elements of the specified
collection, in the order they are returned by the collection's
iterator. (The first element returned by the collection's
iterator becomes the first element, or front of the
deque.)
Parameters: c - the collection whose elements are to be placed into the deque throws: NullPointerException - if the specified collection is null |
addFirst | public void addFirst(E e)(Code) | | Inserts the specified element at the front of this deque.
Parameters: e - the element to add throws: NullPointerException - if the specified element is null |
addLast | public void addLast(E e)(Code) | | Inserts the specified element at the end of this deque.
This method is equivalent to
ArrayDeque.add .
Parameters: e - the element to add throws: NullPointerException - if the specified element is null |
clear | public void clear()(Code) | | Removes all of the elements from this deque.
The deque will be empty after this call returns.
|
clone | public ArrayDeque<E> clone()(Code) | | Returns a copy of this deque.
a copy of this deque |
contains | public boolean contains(Object o)(Code) | | Returns true if this deque contains the specified element.
More formally, returns true if and only if this deque contains
at least one element e such that o.equals(e).
Parameters: o - object to be checked for containment in this deque true if this deque contains the specified element |
element | public E element()(Code) | | Retrieves, but does not remove, the head of the queue represented by
this deque. This method differs from
ArrayDeque.peek peek only in
that it throws an exception if this deque is empty.
This method is equivalent to
ArrayDeque.getFirst .
the head of the queue represented by this deque throws: NoSuchElementException - |
isEmpty | public boolean isEmpty()(Code) | | Returns true if this deque contains no elements.
true if this deque contains no elements |
iterator | public Iterator<E> iterator()(Code) | | Returns an iterator over the elements in this deque. The elements
will be ordered from first (head) to last (tail). This is the same
order that elements would be dequeued (via successive calls to
ArrayDeque.remove or popped (via successive calls to
ArrayDeque.pop ).
an iterator over the elements in this deque |
offerFirst | public boolean offerFirst(E e)(Code) | | Inserts the specified element at the front of this deque.
Parameters: e - the element to add true (as specified by Deque.offerFirst) throws: NullPointerException - if the specified element is null |
offerLast | public boolean offerLast(E e)(Code) | | Inserts the specified element at the end of this deque.
Parameters: e - the element to add true (as specified by Deque.offerLast) throws: NullPointerException - if the specified element is null |
peek | public E peek()(Code) | | Retrieves, but does not remove, the head of the queue represented by
this deque, or returns null if this deque is empty.
This method is equivalent to
ArrayDeque.peekFirst .
the head of the queue represented by this deque, ornull if this deque is empty |
peekFirst | public E peekFirst()(Code) | | |
peekLast | public E peekLast()(Code) | | |
poll | public E poll()(Code) | | Retrieves and removes the head of the queue represented by this deque
(in other words, the first element of this deque), or returns
null if this deque is empty.
This method is equivalent to
ArrayDeque.pollFirst .
the head of the queue represented by this deque, ornull if this deque is empty |
pollFirst | public E pollFirst()(Code) | | |
pollLast | public E pollLast()(Code) | | |
pop | public E pop()(Code) | | Pops an element from the stack represented by this deque. In other
words, removes and returns the first element of this deque.
This method is equivalent to
ArrayDeque.removeFirst() .
the element at the front of this deque (which is the topof the stack represented by this deque) throws: NoSuchElementException - |
push | public void push(E e)(Code) | | Pushes an element onto the stack represented by this deque. In other
words, inserts the element at the front of this deque.
This method is equivalent to
ArrayDeque.addFirst .
Parameters: e - the element to push throws: NullPointerException - if the specified element is null |
remove | public E remove()(Code) | | Retrieves and removes the head of the queue represented by this deque.
This method differs from
ArrayDeque.poll poll only in that it throws an
exception if this deque is empty.
This method is equivalent to
ArrayDeque.removeFirst .
the head of the queue represented by this deque throws: NoSuchElementException - |
remove | public boolean remove(Object o)(Code) | | Removes a single instance of the specified element from this deque.
If the deque does not contain the element, it is unchanged.
More formally, removes the first element e such that
o.equals(e) (if such an element exists).
Returns true if this deque contained the specified element
(or equivalently, if this deque changed as a result of the call).
This method is equivalent to
ArrayDeque.removeFirstOccurrence .
Parameters: o - element to be removed from this deque, if present true if this deque contained the specified element |
removeFirstOccurrence | public boolean removeFirstOccurrence(Object o)(Code) | | Removes the first occurrence of the specified element in this
deque (when traversing the deque from head to tail).
If the deque does not contain the element, it is unchanged.
More formally, removes the first element e such that
o.equals(e) (if such an element exists).
Returns true if this deque contained the specified element
(or equivalently, if this deque changed as a result of the call).
Parameters: o - element to be removed from this deque, if present true if the deque contained the specified element |
removeLastOccurrence | public boolean removeLastOccurrence(Object o)(Code) | | Removes the last occurrence of the specified element in this
deque (when traversing the deque from head to tail).
If the deque does not contain the element, it is unchanged.
More formally, removes the last element e such that
o.equals(e) (if such an element exists).
Returns true if this deque contained the specified element
(or equivalently, if this deque changed as a result of the call).
Parameters: o - element to be removed from this deque, if present true if the deque contained the specified element |
size | public int size()(Code) | | Returns the number of elements in this deque.
the number of elements in this deque |
toArray | public Object[] toArray()(Code) | | Returns an array containing all of the elements in this deque
in proper sequence (from first to last element).
The returned array will be "safe" in that no references to it are
maintained by this deque. (In other words, this method must allocate
a new array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based
APIs.
an array containing all of the elements in this deque |
toArray | public T[] toArray(T[] a)(Code) | | Returns an array containing all of the elements in this deque in
proper sequence (from first to last element); the runtime type of the
returned array is that of the specified array. If the deque fits in
the specified array, it is returned therein. Otherwise, a new array
is allocated with the runtime type of the specified array and the
size of this deque.
If this deque fits in the specified array with room to spare
(i.e., the array has more elements than this deque), the element in
the array immediately following the end of the deque is set to
null.
Like the
ArrayDeque.toArray() method, this method acts as bridge between
array-based and collection-based APIs. Further, this method allows
precise control over the runtime type of the output array, and may,
under certain circumstances, be used to save allocation costs.
Suppose x is a deque known to contain only strings.
The following code can be used to dump the deque into a newly
allocated array of String:
String[] y = x.toArray(new String[0]);
Note that toArray(new Object[0]) is identical in function to
toArray().
Parameters: a - the array into which the elements of the deque are tobe stored, if it is big enough; otherwise, a new array of thesame runtime type is allocated for this purpose an array containing all of the elements in this deque throws: ArrayStoreException - if the runtime type of the specified arrayis not a supertype of the runtime type of every element inthis deque throws: NullPointerException - if the specified array is null |
|
|
|