新聞中心
ArrayDeque

成都創(chuàng)新互聯(lián)是一家專業(yè)提供龍子湖企業(yè)網(wǎng)站建設,專注與網(wǎng)站制作、成都做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務。10年已為龍子湖眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡公司優(yōu)惠進行中。
java.lang.Object
|---java.util.AbstractCollection
|---|---java.util.ArrayDeque
public class ArrayDeque
extends AbstractCollection
implements Deque, Cloneable, Serializable Deque 接口的可調(diào)整大小的數(shù)組實現(xiàn)。 數(shù)組雙端隊列沒有容量限制; 它們會根據(jù)需要增長以支持使用。 它們不是線程安全的; 在沒有外部同步的情況下,它們不支持多線程并發(fā)訪問。 禁止使用空元素。 這個類在作為棧使用時可能比 Stack 快,作為隊列使用時比 LinkedList 快。
大多數(shù) ArrayDeque 操作在攤銷的常數(shù)時間內(nèi)運行。 例外情況包括 remove、removeFirstOccurrence、removeLastOccurrence、contains、iterator.remove() 和批量操作,所有這些操作都以線性時間運行。
此類的迭代器方法返回的迭代器是快速失敗的:如果在創(chuàng)建迭代器后的任何時間對雙端隊列進行了修改,除了通過迭代器自己的 remove 方法之外的任何方式,迭代器通常會拋出 ConcurrentModificationException。 因此,面對并發(fā)修改,迭代器快速而干凈地失敗,而不是在未來不確定的時間冒任意的、非確定性的行為。
請注意,不能保證迭代器的快速失敗行為,因為一般來說,在存在不同步的并發(fā)修改的情況下,不可能做出任何硬保證。 快速失敗的迭代器會盡最大努力拋出 ConcurrentModificationException。 因此,編寫一個依賴于這個異常的正確性的程序是錯誤的:迭代器的快速失敗行為應該只用于檢測錯誤。
此類及其迭代器實現(xiàn)了 Collection 和 Iterator 接口的所有可選方法。
此類是 Java 集合框架的成員。
構造函數(shù)摘要
| 構造函數(shù) | 描述 |
|---|---|
| ArrayDeque() | 構造一個空數(shù)組雙端隊列,其初始容量足以容納 16 個元素。 |
| ArrayDeque(int numElements) | 構造一個空數(shù)組雙端隊列,其初始容量足以容納指定數(shù)量的元素。 |
| ArrayDeque(Collection extends E> c) | 按照集合的迭代器返回的順序構造一個包含指定集合元素的雙端隊列。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| boolean | add(E e) | 在此雙端隊列的末尾插入指定的元素。 |
| void | addFirst(E e) | 在此雙端隊列的前面插入指定元素。 |
| void | addLast(E e) | 在此雙端隊列的末尾插入指定的元素。 |
| void | clear() | 從此雙端隊列中刪除所有元素。 |
| ArrayDequeE | clone() | 返回此雙端隊列的副本。 |
| boolean | contains(Object o) | 如果此雙端隊列包含指定元素,則返回 true。 |
| IteratorE | descendingIterator() | 以相反的順序返回此雙端隊列中元素的迭代器。 |
| E | element() | 檢索但不刪除此雙端隊列表示的隊列的頭部。 |
| E | getFirst() | 檢索但不刪除此雙端隊列的第一個元素。 |
| E | getLast() | 檢索但不刪除此雙端隊列的最后一個元素。 |
| boolean | isEmpty() | 如果此雙端隊列不包含任何元素,則返回 true。 |
| IteratorE | 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) | 將元素推送到此雙端隊列表示的堆棧上。 |
| E | remove() | 檢索并刪除此雙端隊列表示的隊列的頭部。 |
| boolean | remove(Object o) | 從此雙端隊列中移除指定元素的單個實例。 |
| E | removeFirst() | 檢索并刪除此雙端隊列的第一個元素。 |
| boolean | removeFirstOccurrence(Object o) | 刪除此雙端隊列中第一次出現(xiàn)的指定元素(從頭到尾遍歷雙端隊列時)。 |
| E | removeLast() | 檢索并刪除此雙端隊列的最后一個元素。 |
| boolean | removeLastOccurrence(Object o) | 刪除此雙端隊列中最后一次出現(xiàn)的指定元素(從頭到尾遍歷雙端隊列時)。 |
| int | size() | 返回此雙端隊列中的元素數(shù)。 |
| SpliteratorE | spliterator() | 在此雙端隊列中的元素上創(chuàng)建一個后期綁定和快速失敗的拆分器。 |
| Object[] | toArray() | 以正確的順序(從第一個元素到最后一個元素)返回包含此雙端隊列中所有元素的數(shù)組。 |
| toArray(T[] a) | 以正確的順序(從第一個元素到最后一個元素)返回包含此雙端隊列中所有元素的數(shù)組; 返回數(shù)組的運行時類型是指定數(shù)組的運行時類型。 |
| 從類 java.util.AbstractCollection 繼承的方法 |
|---|
| addAll, containsAll, removeAll, retainAll, toString |
| 從接口 java.util.Collection 繼承的方法 |
|---|
| addAll, containsAll, equals, hashCode, parallelStream, removeAll, removeIf, retainAll, stream |
| 從接口 java.lang.Iterable 繼承的方法 |
|---|
| forEach |
| 從類 java.lang.Object 繼承的方法 |
|---|
| equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
構造函數(shù)詳細信息
ArrayDeque
public ArrayDeque()
構造一個空數(shù)組雙端隊列,其初始容量足以容納 16 個元素。
ArrayDeque
public ArrayDeque(int numElements)
構造一個空數(shù)組雙端隊列,其初始容量足以容納指定數(shù)量的元素。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| numElements | 雙端隊列初始容量的下限 |
ArrayDeque
public ArrayDeque(Collection extends E> c)
按照集合的迭代器返回的順序構造一個包含指定集合元素的雙端隊列。 (集合的迭代器返回的第一個元素成為第一個元素,或雙端隊列的前面。)
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 將其元素放入雙端隊列的集合 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定的集合為空 |
方法詳情
addFirst
public void addFirst(E e)
在此雙端隊列的前面插入指定元素。
指定者:
接口 DequeE 中的 addFirst
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
addLast
public void addLast(E e)
在此雙端隊列的末尾插入指定的元素。
此方法等效于 add(E)。
指定者:
接口 DequeE 中的 addLast
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
offerFirst
public boolean offerFirst(E e)
在此雙端隊列的前面插入指定元素。
指定者:
接口 DequeE 中的 offerFirst
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Deque#offerFirst 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
offerLast
public boolean offerLast(E e)
在此雙端隊列的末尾插入指定的元素。
指定者:
接口 DequeE 中的 offerLast
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Deque#offerLast 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
removeFirst
public E removeFirst()
從接口復制的描述:雙端隊列
檢索并刪除此雙端隊列的第一個元素。 此方法與 pollFirst 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
指定者:
接口 DequeE 中的 removeFirst
返回:
這個雙端隊列的頭
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
removeLast
public E removeLast()
從接口復制的描述:雙端隊列
檢索并刪除此雙端隊列的最后一個元素。 此方法與 pollLast 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
指定者:
接口 DequeE 中的 removeLast
返回:
這個雙端隊列的尾巴
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
pollFirst
public E pollFirst()
從接口復制的描述:雙端隊列
檢索并刪除此雙端隊列的第一個元素,如果此雙端隊列為空,則返回 null。
指定者:
接口 DequeE 中的 pollFirst
返回:
此雙端隊列的頭部,如果此雙端隊列為空,則返回 null
pollLast
public E pollLast()
從接口復制的描述:雙端隊列
檢索并刪除此雙端隊列的最后一個元素,如果此雙端隊列為空,則返回 null。
指定者:
接口 DequeE 中的 pollLast
返回:
此雙端隊列的尾部,如果此雙端隊列為空,則返回 null
getFirst
public E getFirst()
從接口復制的描述:雙端隊列
檢索但不刪除此雙端隊列的第一個元素。 此方法與 peekFirst 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
指定者:
接口 DequeE 中的 getFirst
返回:
這個雙端隊列的頭
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
getLast
public E getLast()
從接口復制的描述:雙端隊列
檢索但不刪除此雙端隊列的最后一個元素。 此方法與 peekLast 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
指定者:
接口 DequeE 中的 getLast
返回:
這個雙端隊列的尾巴
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
peekFirst
public E peekFirst()
從接口復制的描述:雙端隊列
檢索但不刪除此雙端隊列的第一個元素,如果此雙端隊列為空,則返回 null。
指定者:
接口 DequeE 中的 peekFirst
返回:
此雙端隊列的頭部,如果此雙端隊列為空,則返回 null
peekLast
public E peekLast()
從接口復制的描述:雙端隊列
檢索但不刪除此雙端隊列的最后一個元素,如果此雙端隊列為空,則返回 null。
指定者:
接口 DequeE 中的 peekLast
返回:
此雙端隊列的尾部,如果此雙端隊列為空,則返回 null
removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
刪除此雙端隊列中第一次出現(xiàn)的指定元素(從頭到尾遍歷雙端隊列時)。 如果雙端隊列不包含該元素,則它保持不變。 更正式地說,刪除第一個元素 e 使得 o.equals(e) (如果存在這樣的元素)。 如果此雙端隊列包含指定元素(或等效地,如果此雙端隊列因調(diào)用而更改),則返回 true。
指定者:
接口 DequeE 中的 removeFirstOccurrence
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要從此雙端隊列中刪除的元素(如果存在) |
返回:
如果雙端隊列包含指定的元素,則為true
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
刪除此雙端隊列中最后一次出現(xiàn)的指定元素(從頭到尾遍歷雙端隊列時)。 如果雙端隊列不包含該元素,則它保持不變。 更正式地說,刪除最后一個元素 e 使得 o.equals(e) (如果存在這樣的元素)。 如果此雙端隊列包含指定元素(或等效地,如果此雙端隊列因調(diào)用而更改),則返回 true。
指定者:
接口 DequeE 中的 removeLastOccurrence
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要從此雙端隊列中刪除的元素(如果存在) |
返回:
如果雙端隊列包含指定的元素,則為true
add
public boolean add(E e)
在此雙端隊列的末尾插入指定的元素。
此方法等效于 addLast(E)。
指定者:
添加接口CollectionE
指定者:
添加接口 DequeE
指定者:
添加接口QueueE
覆蓋:
添加類 AbstractCollectionE
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Collection#add 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
offer
public boolean offer(E e)
在此雙端隊列的末尾插入指定的元素。
此方法等效于 offerLast(E)。
指定者:
在接口 DequeE 中提供
指定者:
接口QueueE中的offer
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Queue#offer 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
remove
public E remove()
檢索并刪除此雙端隊列表示的隊列的頭部。 此方法與 poll 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
此方法等效于 removeFirst()。
指定者:
在接口 DequeE 中移除
指定者:
在接口 QueueE 中刪除
返回:
此雙端隊列表示的隊列的頭部
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
poll
public E poll()
檢索并刪除此雙端隊列表示的隊列的頭部(換句話說,此雙端隊列的第一個元素),如果此雙端隊列為空,則返回 null。
此方法等效于 pollFirst()。
指定者:
接口 DequeE 中的輪詢
指定者:
在接口 QueueE 中輪詢
返回:
此雙端隊列表示的隊列的頭部,如果此雙端隊列為空,則返回 null
element
public E element()
檢索但不刪除此雙端隊列表示的隊列的頭部。 此方法與 peek 的不同之處僅在于如果此雙端隊列為空,它將引發(fā)異常。
此方法等效于 getFirst()。
指定者:
接口 DequeE 中的元素
指定者:
接口 QueueE 中的元素
返回:
此雙端隊列表示的隊列的頭部
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
peek
public E peek()
檢索但不刪除此雙端隊列表示的隊列的頭部,如果此雙端隊列為空,則返回 null。
此方法等效于 peekFirst()。
指定者:
查看界面 DequeE
指定者:
查看接口 QueueE
返回:
此雙端隊列表示的隊列的頭部,如果此雙端隊列為空,則返回 null
push
public void push(E e)
將元素推送到此雙端隊列表示的堆棧上。 換句話說,在這個雙端隊列的前面插入元素。
此方法等效于 addFirst(E)。
指定者:
推入接口 DequeE
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要推動的元素 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定元素為空 |
pop
public E pop()
從這個雙端隊列表示的堆棧中彈出一個元素。 換句話說,刪除并返回此雙端隊列的第一個元素。
此方法等效于 removeFirst()。
指定者:
彈出界面DequeE
返回:
這個雙端隊列前面的元素(這是這個雙端隊列表示的堆棧的頂部)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NoSuchElementException | 如果此雙端隊列為空 |
size
public int size()
返回此雙端隊列中的元素數(shù)。
指定者:
接口 CollectionE 中的大小
指定者:
接口 DequeE 中的大小
指定者:
AbstractCollectionE 類中的大小
返回:
此雙端隊列中的元素數(shù)量
isEmpty
public boolean isEmpty()
如果此雙端隊列不包含任何元素,則返回 true。
指定者:
接口 CollectionE 中的 isEmpty
覆蓋:
類 AbstractCollectionE 中的 isEmpty
返回:
如果此雙端隊列不包含任何元素,則為 true
iterator
public IteratorE iterator()
返回此雙端隊列中元素的迭代器。 元素將從第一個(頭)到最后一個(尾)排序。 這與元素出列(通過連續(xù)調(diào)用 remove() 或彈出(通過連續(xù)調(diào)用 pop())的順序相同。
指定者:
接口 CollectionE 中的迭代器
指定者:
接口 DequeE 中的迭代器
指定者:
接口 IterableE 中的迭代器
指定者:
AbstractCollectionE 類中的迭代器
返回:
此雙端隊列中元素的迭代器
descendingIterator
public IteratorE descendingIterator()
從接口復制的描述:雙端隊列
以相反的順序返回此雙端隊列中元素的迭代器。 元素將按從最后(尾)到第一個(頭)的順序返回。
指定者:
DequeE 接口中的 descendingIterator
返回:
以相反順序?qū)υ撾p端隊列中的元素進行迭代
contains
public boolean contains(Object o)
如果此雙端隊列包含指定元素,則返回 true。 更正式地說,當且僅當此雙端隊列包含至少一個元素 e 使得 o.equals(e) 時才返回 true。
指定者:
包含在接口 CollectionE 中
指定者:
包含在接口 DequeE
覆蓋:
包含在類 AbstractCollectionE 中
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要檢查此雙端隊列中包含的對象 |
返回:
如果此雙端隊列包含指定元素,則為 true
remove
public boolean remove(Object o)
從此雙端隊列中移除指定元素的單個實例。 如果雙端隊列不包含該元素,則它保持不變。 更正式地說,刪除第一個元素 e 使得 o.equals(e) (如果存在這樣的元素)。 如果此雙端隊列包含指定元素(或等效地,如果此雙端隊列因調(diào)用而更改),則返回 true。
此方法等效于 removeFirstOccurrence(java.lang.Object)。
指定者:
在接口 CollectionE 中刪除
指定者:
在接口 DequeE 中移除
覆蓋:
在類 AbstractCollectionE 中刪除
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要從此雙端隊列中刪除的元素(如果存在) |
返回:
如果此雙端隊列包含指定元素,則為 true
clear
public void clear()
從此雙端隊列中刪除所有元素。 此調(diào)用返回后,雙端隊列將為空。
指定者:
在界面 CollectionE 中清除
覆蓋:
在類 AbstractCollectionE 中清除
toArray
public Object[] toArray()
以正確的順序(從第一個元素到最后一個元素)返回包含此雙端隊列中所有元素的數(shù)組。
返回的數(shù)組將是“安全的”,因為此雙端隊列不維護對它的引用。 (換句話說,這個方法必須分配一個新數(shù)組)。 因此,調(diào)用者可以自由修改返回的數(shù)組。
此方法充當基于數(shù)組和基于集合的 API 之間的橋梁。
指定者:
接口 CollectionE 中的 toArray
覆蓋:
AbstractCollectionE 類中的 toArray
返回:
包含此雙端隊列中所有元素的數(shù)組
toArray
public
以正確的順序(從第一個元素到最后一個元素)返回包含此雙端隊列中所有元素的數(shù)組; 返回數(shù)組的運行時類型是指定數(shù)組的運行時類型。 如果雙端隊列適合指定的數(shù)組,則在其中返回。 否則,將使用指定數(shù)組的運行時類型和此雙端隊列的大小分配一個新數(shù)組。
如果此雙端隊列適合指定的數(shù)組并有剩余空間(即,該數(shù)組的元素多于該雙端隊列),則緊隨雙端隊列末尾的數(shù)組中的元素設置為 null。
與 toArray() 方法一樣,此方法充當基于數(shù)組的 API 和基于集合的 API 之間的橋梁。 此外,此方法允許對輸出數(shù)組的運行時類型進行精確控制,并且在某些情況下可用于節(jié)省分配成本。
假設 x 是一個已知只包含字符串的雙端隊列。 以下代碼可用于將雙端隊列轉(zhuǎn)儲到新分配的字符串數(shù)組中:
String[] y = x.toArray(new String[0]);請注意,toArray(new Object[0]) 在功能上與 toArray() 相同。
指定者:
接口 CollectionE 中的 toArray
覆蓋:
AbstractCollectionE 類中的 toArray
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 包含集合的數(shù)組的運行時類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 如果足夠大,則要存儲雙端隊列元素的數(shù)組; 否則,將為此目的分配相同運行時類型的新數(shù)組 |
返回:
包含此雙端隊列中所有元素的數(shù)組
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ArrayStoreException | 如果指定數(shù)組的運行時類型不是此雙端隊列中每個元素的運行時類型的超類型 |
| NullPointerException | 如果指定的數(shù)組為空 |
clone
public ArrayDequeE clone()
返回此雙端隊列的副本。
覆蓋:
在類 Object 中克隆
返回:
這個雙端隊列的副本
spliterator
public SpliteratorE spliterator()
在此雙端隊列中的元素上創(chuàng)建一個后期綁定和快速失敗的拆分器。
Spliterator 報告 Spliterator#SIZED、Spliterator#SUBSIZED、Spliterator#ORDERED 和 Spliterator#NONNULL。 覆蓋實現(xiàn)應記錄附加特征值的報告。
指定者:
接口 CollectionE 中的分離器
指定者:
接口 IterableE 中的分離器
返回:
此雙端隊列中元素的拆分器
當前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSArrayDeque
轉(zhuǎn)載源于:http://m.5511xx.com/article/dhdpios.html


咨詢
建站咨詢
