|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.AbstractCollection<E> java.util.ArrayDeque<E>
E
- the type of elements held in this collectionpublic class ArrayDeque<E>
Deque
介面的大小可變陣列的實作。陣列雙端佇列沒有容量限制;它們可根據需要增加以支持使用。它們不是執行緒安全的;在沒有外部同步時,它們不支持多個執行緒的共時存取。禁止 null 元素。此類別很可能在用作堆疊(stack)空間時快於 Stack
,在用作佇列時快於 LinkedList
。
大多數 ArrayDeque 操作以攤銷的固定時間運行。異常包括 remove
、removeFirstOccurrence
、removeLastOccurrence
、contains
、iterator.remove()
以及批量操作,它們均以線性時間運行。
此類別的 iterator 方法返回的迭代器是快速失敗 的:如果在創建迭代器後的任意時間通過除迭代器本身的 remove 方法之外的任何其他方式修改了雙端佇列,則迭代器通常將拋出 ConcurrentModificationException
。因此,面對共時修改,迭代器很快就會完全失敗,而不是冒著在將來不確定的時刻任意發生不確定行為的風險。
注意,迭代器的快速失敗行為不能得到保證,一般來說,存在不同步的共時修改時,不可能作出任何堅決的保證。快速失敗迭代器盡最大努力拋出 ConcurrentModificationException。因此,編寫依賴於此異常的程序是錯誤的,正確做法是:迭代器的快速失敗行為應該僅用於檢測 bug。
此類別及其迭代器實作 Collection
和 Iterator
介面的所有可選 方法。
此類別是 Java Collections Framework 的成員。
建構子摘要 | |
---|---|
ArrayDeque()
建構一個初始容量能夠容納 16 個元素的空陣列雙端佇列。 |
|
ArrayDeque(Collection<? extends E> c)
建構一個套件含指定 collection 的元素的雙端佇列,這些元素按 collection 的迭代器返回的順序排列。 |
|
ArrayDeque(int numElements)
建構一個初始容量能夠容納指定數量的元素的空陣列雙端佇列。 |
方法摘要 | ||
---|---|---|
boolean |
add(E e)
將指定元素插入此雙端佇列的末尾。 |
|
void |
addFirst(E e)
將指定元素插入此雙端佇列的開頭。 |
|
void |
addLast(E e)
將指定元素插入此雙端佇列的末尾。 |
|
void |
clear()
從此雙端佇列中移除所有元素。 |
|
ArrayDeque<E> |
clone()
返回此雙端佇列的副本。 |
|
boolean |
contains(Object o)
如果此雙端佇列包含指定元素,則返回 true。 |
|
Iterator<E> |
descendingIterator()
返回以逆向順序在此雙端佇列的元素上進行迭代的迭代器。 |
|
E |
element()
獲取,但不移除此雙端佇列所表示的佇列的頭。 |
|
E |
getFirst()
獲取,但不移除此雙端佇列的第一個元素。 |
|
E |
getLast()
獲取,但不移除此雙端佇列的最後一個元素。 |
|
boolean |
isEmpty()
如果此雙端佇列未包含任何元素,則返回 true。 |
|
Iterator<E> |
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()
從此雙端佇列所表示的堆疊(stack)空間中彈出一個元素。 |
|
void |
push(E e)
將元素推入此雙端佇列所表示的堆疊(stack)空間。 |
|
E |
remove()
獲取並移除此雙端佇列所表示的佇列的頭。 |
|
boolean |
remove(Object o)
從此雙端佇列中移除指定元素的單個實例。 |
|
E |
removeFirst()
獲取並移除此雙端佇列第一個元素。 |
|
boolean |
removeFirstOccurrence(Object o)
移除此雙端佇列中第一次出現的指定元素(當從頭部到尾部遍歷雙端佇列時)。 |
|
E |
removeLast()
獲取並移除此雙端佇列的最後一個元素。 |
|
boolean |
removeLastOccurrence(Object o)
移除此雙端佇列中最後一次出現的指定元素(當從頭部到尾部遍歷雙端佇列時)。 |
|
int |
size()
返回此雙端佇列中的元素數。 |
|
Object[] |
toArray()
返回一個以恰當順序包含此雙端佇列所有元素的陣列(從第一個元素到最後一個元素)。 |
|
|
toArray(T[] a)
返回一個以恰當順序包含此雙端佇列所有元素的陣列(從第一個元素到最後一個元素);返回陣列的運行時型別是指定陣列的運行時型別。 |
從類別 java.util.AbstractCollection 繼承的方法 |
---|
addAll, containsAll, removeAll, retainAll, toString |
從類別 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
從介面 java.util.Collection 繼承的方法 |
---|
addAll, containsAll, equals, hashCode, removeAll, retainAll |
建構子詳細資訊 |
---|
public ArrayDeque()
public ArrayDeque(int numElements)
numElements
- 雙端佇列初始容量的下邊界public ArrayDeque(Collection<? extends E> c)
c
- 要將其元素放入雙端佇列的 collection
NullPointerException
- 如果指定 collection 為 null方法詳細資訊 |
---|
public void addFirst(E e)
Deque<E>
中的 addFirst
e
- 要添加的元素
NullPointerException
- 如果指定元素為 nullpublic void addLast(E e)
此方法等效於 add(E)
。
Deque<E>
中的 addLast
e
- 要添加的元素
NullPointerException
- 如果指定元素為 nullpublic boolean offerFirst(E e)
Deque<E>
中的 offerFirst
e
- 要添加的元素
Deque.offerFirst(E)
的規定)
NullPointerException
- 如果指定元素為 nullpublic boolean offerLast(E e)
Deque<E>
中的 offerLast
e
- 要添加的元素
Deque.offerLast(E)
的規定)
NullPointerException
- 如果指定元素為 nullpublic E removeFirst()
Deque
複製的描述pollFirst
唯一的不同在於:如果此雙端佇列為空,它將拋出一個異常。
Deque<E>
中的 removeFirst
NoSuchElementException
- 如果此雙端佇列為空public E removeLast()
Deque
複製的描述pollLast
唯一的不同在於:如果此雙端佇列為空,它將拋出一個異常。
Deque<E>
中的 removeLast
NoSuchElementException
- 如果此雙端佇列為空public E pollFirst()
Deque
複製的描述
Deque<E>
中的 pollFirst
public E pollLast()
Deque
複製的描述
Deque<E>
中的 pollLast
public E getFirst()
Deque
複製的描述peekFirst
唯一的不同在於:如果此雙端佇列為空,它將拋出一個異常。
Deque<E>
中的 getFirst
NoSuchElementException
- 如果此雙端佇列為空public E getLast()
Deque
複製的描述peekLast
唯一的不同在於:如果此雙端佇列為空,它將拋出一個異常。
Deque<E>
中的 getLast
NoSuchElementException
- 如果此雙端佇列為空public E peekFirst()
Deque
複製的描述
Deque<E>
中的 peekFirst
public E peekLast()
Deque
複製的描述
Deque<E>
中的 peekLast
public boolean removeFirstOccurrence(Object o)
Deque<E>
中的 removeFirstOccurrence
o
- 要從此雙端佇列中移除的元素(如果存在)
public boolean removeLastOccurrence(Object o)
Deque<E>
中的 removeLastOccurrence
o
- 要從此雙端佇列中移除的元素(如果存在)
public boolean add(E e)
此方法等效於 addLast(E)
。
Collection<E>
中的 add
Deque<E>
中的 add
Queue<E>
中的 add
AbstractCollection<E>
中的 add
e
- 要添加的元素
Collection.add(E)
的規定)
NullPointerException
- 如果指定元素為 nullpublic boolean offer(E e)
此方法等效於 offerLast(E)
。
Deque<E>
中的 offer
Queue<E>
中的 offer
e
- 要添加的元素
Queue.offer(E)
的規定)
NullPointerException
- 如果指定元素為 nullpublic E remove()
poll
的不同之處在於:如果此雙端佇列為空,它將拋出一個異常。
此方法等效於 removeFirst()
。
Deque<E>
中的 remove
Queue<E>
中的 remove
NoSuchElementException
- 如果此雙端佇列為空public E poll()
此方法等效於 pollFirst()
。
Deque<E>
中的 poll
Queue<E>
中的 poll
public E element()
peek
的不同之處在於:如果此雙端佇列為空,它將拋出一個異常。
此方法等效於 getFirst()
。
Deque<E>
中的 element
Queue<E>
中的 element
NoSuchElementException
- 如果此雙端佇列為空public E peek()
此方法等效於 peekFirst()
。
Deque<E>
中的 peek
Queue<E>
中的 peek
public void push(E e)
此方法等效於 addFirst(E)
。
Deque<E>
中的 push
e
- 要推入的元素
NullPointerException
- 如果指定元素為 nullpublic E pop()
此方法等效於 removeFirst()
。
Deque<E>
中的 pop
NoSuchElementException
- 如果此雙端佇列為空public int size()
Collection<E>
中的 size
Deque<E>
中的 size
AbstractCollection<E>
中的 size
public boolean isEmpty()
Collection<E>
中的 isEmpty
AbstractCollection<E>
中的 isEmpty
public Iterator<E> iterator()
remove()
)或彈出(通過連續調用 pop()
)的順序相同。
Iterable<E>
中的 iterator
Collection<E>
中的 iterator
Deque<E>
中的 iterator
AbstractCollection<E>
中的 iterator
public Iterator<E> descendingIterator()
Deque
複製的描述
Deque<E>
中的 descendingIterator
public boolean contains(Object o)
Collection<E>
中的 contains
Deque<E>
中的 contains
AbstractCollection<E>
中的 contains
o
- 檢查是否包含於此雙端佇列的物件
public boolean remove(Object o)
此方法等效於 removeFirstOccurrence(java.lang.Object)
。
Collection<E>
中的 remove
Deque<E>
中的 remove
AbstractCollection<E>
中的 remove
o
- 要從此雙端佇列中移除的元素(如果存在)
public void clear()
Collection<E>
中的 clear
AbstractCollection<E>
中的 clear
public Object[] toArray()
由於此雙端佇列不維護對返回陣列的任何參考,因而它將是“安全的”。(換句話說,此方法必須分派一個新的陣列)。因此,調用者可以自由地修改返回的陣列。
此方法充當了基於陣列的 API 與基於 collection 的 API 之間的橋樑。
Collection<E>
中的 toArray
AbstractCollection<E>
中的 toArray
public <T> T[] toArray(T[] a)
如果指定的陣列能容納此雙端佇列,並有剩餘的空間(即陣列的元素比此雙端佇列多),那麼將陣列中緊接雙端佇列尾部的元素設置為 null。
像 toArray()
方法一樣,此方法充當基於陣列的 API 與基於 collection 的 API 之間的橋樑。更進一步說,此方法允許對輸出陣列的運行時型別進行精確控制,在某些情況下,還可以用來節省分派開銷。
假定 x 是只包含字元串的一個已知雙端佇列。以下程式碼可用來將該雙端佇列轉儲到一個新分派的 String 陣列:
String[] y = x.toArray(new String[0]);注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。
Collection<E>
中的 toArray
AbstractCollection<E>
中的 toArray
a
- 要用來存儲雙端佇列元素的陣列(如果該陣列足夠大);否則,將為此分派一個具有相同運行時型別的新陣列
ArrayStoreException
- 如果指定陣列的運行時型別不是此雙端佇列每個元素的運行時型別的父級類別型
NullPointerException
- 如果指定的陣列為 nullpublic ArrayDeque<E> clone()
Object
中的 clone
Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。