近期用到有關佇列 queue 的api,比如 add/offer,element/peek,remove/poll等方法,有些功能類似的地方,在選擇使用時不免有所疑惑,這裡簡單區別一下:
1、add()和offer()區別:
add()和offer()都是向佇列中新增乙個元素。一些佇列有大小限制,因此如果想在乙個滿的佇列中加入乙個新項,呼叫 add() 方法就會丟擲乙個 unchecked 異常,而呼叫 offer() 方法會返回 false。因此就可以在程式中進行有效的判斷!
2、poll()和remove()區別:
remove() 和 poll() 方法都是從佇列中刪除第乙個元素。如果佇列元素為空,呼叫remove() 的行為與 collection 介面的版本相似會丟擲異常,但是新的 poll() 方法在用空集合呼叫時只是返回 null。因此新的方法更適合容易出現異常條件的情況。
3、element() 和 peek() 區別:
element() 和 peek() 用於在佇列的頭部查詢元素。與 remove() 方法類似,在隊列為空時, element() 丟擲乙個異常,而 peek() 返回 null。
下面是queue的一些常用方法:
add 增加乙個元索 如果佇列已滿,則丟擲乙個iiiegaislabeepeplian異常
remove 移除並返回佇列頭部的元素 如果隊列為空,則丟擲乙個nosuchelementexception異常
element 返回佇列頭部的元素 如果隊列為空,則丟擲乙個nosuchelementexception異常
offer 新增乙個元素並返回true 如果佇列已滿,則返回false
poll 移除並返問佇列頭部的元素 如果隊列為空,則返回null
peek 返回佇列頭部的元素 如果隊列為空,則返回null
put 新增乙個元素 如果佇列滿,則阻塞
take 移除並返回佇列頭部的元素
佇列(Queue)的基本操作
2.1 概念 只允許在一端進行插入操作,在另一端進行刪除操作的特殊線性表 2.2 特點 a.先進先出 fifob b.進行插入的一端稱為隊尾,進行刪除的一端成為對頭 2.3 分類 順序佇列 鏈佇列 2.4 基本操作 a.offer 入隊 b.poll 出隊 c.peek 對頭元素 d.isempty...
C 佇列Queue基本操作
c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。queue 的基本操作舉例如下 queue入隊,如例 q.push x 將x 接到佇列的末端。queue出隊,如例 q.pop 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。訪問queue隊首元素,如例 ...
C 佇列queue基本操作
c 佇列queue模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。c 佇列queue類成員函式如下 back...