佇列的Queue介面和Deque介面的方法概述

2021-08-11 06:00:33 字數 2511 閱讀 9303

deque介面繼承了queue介面,queue介面又繼承了collection介面,collection介面又繼承了iterable介面,從父類介面,到具體的實現類,

有許多重疊的方法,其中子類介面中的方法要麼直接繼承父類,要麼重寫父類方法,但無論哪一種,方法的作用都相似,但還有細微的差別,如可能子類重寫的方法會

報出異常,具體參照api。

一、iterable介面

public inte***ce iterable

iteratoriterator()返回一組在指定型別上迭代的迭代器

二、collection介面繼承了iterable介面

public inte***ce collectionextends iterable

1.插入

boolean add(e e)將單個元素新增進集合中

boolean addall(collection c)將另乙個集合中的元素新增進集合中

2.移除

boolean remove(object o)將單個元素從集合中移除

boolean removall(collection c)將引數集合中的有的元素從此集合中移除

boolean retainall(collection c)僅保留引數集合中的有的元素,移除其他元素

void clear()移除此集合中的所有元素

3.檢查

boolean contains(object o)如果集合中包含引數元素,返回true

boolean containsall(collection c)如果集合中包含引數集合中所有元素,返回true

boolean isempty()如果此集合為空,返回true

int size()返回此集合中的元素數

4.轉換為陣列

object toarray()返回包含此集合的所有元素的陣列

t toarray(t a)將此集合中的所有元素放置與引數陣列中,若集合中的元素型別無法被放置在陣列中,則返回乙個包含集合型別和引數陣列型別的新陣列。

若引數陣列容量大於此集合元素數,則將剩餘元素為null。

5.重寫了object類的方法

boolean equals(object o)

int hashcode()

三、queue介面繼承了collection

public inte***ce queueextends  collection

此集合為佇列,即插入時依次向後,取出時依次取出先插入的元素

1.插入

boolean add(e e)將指定的元素插入此佇列(如果立即可行且不會違反容量限制),在成功時返回 true,如果當前沒有可用的空間,則丟擲 illegalstateexception。

boolean offer(e e)將指定的元素插入此佇列(如果立即可行且不會違反容量限制),當使用有容量限制的佇列時,此方法通常要優於 add(e),

後者可能無法插入元素,而只是丟擲乙個異常。

2.移除

e poll()獲取並移除此佇列的頭,如果此隊列為空,則返回 null。

e remove()獲取並移除此佇列的頭

3.檢查

e element()獲取但不移除此佇列的頭

e peek()獲取但不移除此佇列的頭;如果此隊列為空,則返回 null。

四、deque介面繼承了queue

public inte***ce dequeextends queue

deque集合為雙端佇列,即可從兩端進行插入和移除操作

1.插入

void addfirst(e e)將指定元素插入此雙端佇列的開頭

void addlast(e e)將指定元素插入此雙端佇列的末尾

boolean offerfirst(e e)在不違反容量限制的情況下,將指定的元素插入此雙端佇列的開頭。

boolean offerlast(e e)在不違反容量限制的情況下,將指定的元素插入此雙端佇列的末尾。

2.移除

e removefirst()獲取並移除此雙端佇列第乙個元素。

e removelast()獲取並移除此雙端佇列的最後乙個元素。

e pollfirst()獲取並移除此雙端佇列的第乙個元素;如果此雙端隊列為空,則返回 null。

e polllast()獲取並移除此雙端佇列的最後乙個元素;如果此雙端隊列為空,則返回 null。

3.檢查

e getfirst()獲取,但不移除此雙端佇列的第乙個元素。

e getlast()獲取,但不移除此雙端佇列的最後乙個元素。

e peekfirst()獲取,但不移除此雙端佇列的第乙個元素;如果此雙端隊列為空,則返回 null。

e peeklast()獲取,但不移除此雙端佇列的最後乙個元素;如果此雙端隊列為空,則返回 null。

五、常用實現類

linkedlist實現了不僅實現了deque還實現了list

arraydeque實現了deque

具體的實現類還會有新的方法,但是如果在建立集合時使用deque和queue的作為引用型別時,只可以使用這兩個類中的方法。

Queue(佇列)介面

表示collection的子介面,表示佇列fifo first in first out 先進先出 常用方法 丟擲異常 boolean add e e 順序新增乙個元素 到達上限後,再新增則會丟擲異常 e remove 獲得第乙個元素並移除 如果佇列沒有元素時,則丟擲異常 e element 獲得第...

queue的長度 佇列 Queue

佇列 queue 是先進先出 fifo,first in first out 的線性表。在具體應用中通常用鍊錶或者陣列來實現。佇列只允許在後端 稱為rear 進行插入操作,在前端 稱為front 進行刪除操作。隊結構 迴圈佇列可以更簡單防止偽溢位 假溢位 的發生,但佇列大小是固定的。防止假溢位,如d...

棧(Stack)和佇列(Queue)

棧和佇列是兩種重要的線性結構。從資料結構角度看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,它們是操作受限的線性表,因 此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向 的程式設...