鴻蒙OS AbstractQueue

2022-07-07 16:16 更新

AbstractQueue

java.lang.Object

|---java.util.AbstractCollection<E&

|---|---java.util.AbstractQueue<E&

public abstract class AbstractQueue<E>
extends AbstractCollection<E>
implements Queue<E>

這個(gè)類提供了一些 Queue 操作的骨架實(shí)現(xiàn)。 當(dāng)基本實(shí)現(xiàn)不允許空元素時(shí),此類中的實(shí)現(xiàn)是合適的。 add、remove 和 element 方法分別基于 offer、poll 和 peek,但會(huì)拋出異常,而不是通過 false 或 null 返回來指示失敗。

擴(kuò)展此類的 Queue 實(shí)現(xiàn)必須至少定義一個(gè)不允許插入空元素的方法 Queue#offer,以及方法 Queue#peek、Queue#poll、Collection#size 和 Collection#iterator。 通常,其他方法也會(huì)被覆蓋。 如果無法滿足這些要求,請(qǐng)考慮將 AbstractCollection 子類化。

此類是 Java 集合框架的成員。

構(gòu)造函數(shù)摘要

修飾符 構(gòu)造函數(shù) 描述
protected AbstractQueue() 子類使用的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
boolean add(E e) 如果可以在不違反容量限制的情況下立即將指定元素插入此隊(duì)列,則在成功時(shí)返回 true,如果當(dāng)前沒有可用空間則拋出 IllegalStateException。
boolean addAll(Collection<? extends E> c) 將指定集合中的所有元素添加到此隊(duì)列。
void clear() 從此隊(duì)列中刪除所有元素。
E element() 檢索但不刪除此隊(duì)列的頭部。
E remove() 檢索并刪除此隊(duì)列的頭部。
從類 java.util.AbstractCollection 繼承的方法
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
從接口 java.util.Collection 繼承的方法
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
從接口 java.lang.Iterable 繼承的方法
forEach
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從接口 java.util.Queue 繼承的方法
offer, peek, poll

構(gòu)造函數(shù)詳細(xì)信息

AbstractQueue

protected AbstractQueue()

子類使用的構(gòu)造函數(shù)。

方法詳情

add

public boolean add(E e)

如果可以在不違反容量限制的情況下立即將指定元素插入此隊(duì)列,則在成功時(shí)返回 true,如果當(dāng)前沒有可用空間則拋出 IllegalStateException。

如果 offer 成功,此實(shí)現(xiàn)返回 true,否則拋出 IllegalStateException。

指定者:

添加接口CollectionE

指定者:

添加接口QueueE

覆蓋:

添加類 AbstractCollectionE

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要添加的元素

返回:

true(由 Collection#add 指定)

Throws:

Throw名稱 Throw描述
IllegalStateException 如果此時(shí)由于容量限制無法添加元素
ClassCastException 如果指定元素的類阻止它被添加到這個(gè)隊(duì)列
NullPointerException 如果指定元素為空且此隊(duì)列不允許空元素
IllegalArgumentException 如果此元素的某些屬性阻止它被添加到此隊(duì)列中

remove

public E remove()

檢索并刪除此隊(duì)列的頭部。 此方法與 poll 的不同之處僅在于如果此隊(duì)列為空,它將引發(fā)異常。

此實(shí)現(xiàn)返回 poll 的結(jié)果,除非隊(duì)列為空。

指定者:

在接口 QueueE 中刪除

返回:

這個(gè)隊(duì)列的頭

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果此隊(duì)列為空

element

public E element()

檢索但不刪除此隊(duì)列的頭部。 此方法與 peek 的不同之處僅在于如果此隊(duì)列為空,它將引發(fā)異常。

此實(shí)現(xiàn)返回 peek 的結(jié)果,除非隊(duì)列為空。

指定者:

接口 QueueE 中的元素

返回:

這個(gè)隊(duì)列的頭

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果此隊(duì)列為空

clear

public void clear()

從此隊(duì)列中刪除所有元素。 此調(diào)用返回后,隊(duì)列將為空。

此實(shí)現(xiàn)重復(fù)調(diào)用 poll 直到它返回 null。

指定者:

在界面 CollectionE 中清除

覆蓋:

在類 AbstractCollectionE 中清除

addAll

public boolean addAll(Collection<? extends E> c)

將指定集合中的所有元素添加到此隊(duì)列。 嘗試將隊(duì)列的所有內(nèi)容添加到自身會(huì)導(dǎo)致 IllegalArgumentException。 此外,如果在操作正在進(jìn)行時(shí)修改了指定的集合,則此操作的行為是未定義的。

此實(shí)現(xiàn)迭代指定的集合,并將迭代器返回的每個(gè)元素依次添加到此隊(duì)列中。 嘗試添加元素(尤其包括空元素)時(shí)遇到的運(yùn)行時(shí)異常可能會(huì)導(dǎo)致在引發(fā)相關(guān)異常時(shí)只有部分元素已成功添加。

指定者:

接口 CollectionE 中的 addAll

覆蓋:

類 AbstractCollectionE 中的 addAll

參數(shù):

參數(shù)名稱 參數(shù)描述
c 包含要添加到此隊(duì)列的元素的集合

返回:

如果此隊(duì)列因調(diào)用而更改,則為 true

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定集合的元素的類阻止它被添加到此隊(duì)列
NullPointerException 如果指定的集合包含空元素并且此隊(duì)列不允許空元素,或者指定的集合為空
IllegalArgumentException 如果指定集合的元素的某些屬性阻止它被添加到此隊(duì)列,或者指定集合是此隊(duì)列
IllegalStateException 如果由于插入限制,此時(shí)不能添加所有元素
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)