1. 程式人生 > >java Queue中 add/offer,element/peek,remove/poll區別

java Queue中 add/offer,element/peek,remove/poll區別

java Queue中 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。
下面是Java中Queue的一些常用方法:
add 增加一個元索 如果佇列已滿,則丟擲一個IIIegaISlabEepeplian異常
remove 移除並返回佇列頭部的元素 如果佇列為空,則丟擲一個NoSuchElementException異常
element 返回佇列頭部的元素 如果佇列為空,則丟擲一個NoSuchElementException異常
offer 新增一個元素並返回true 如果佇列已滿,則返回false
poll 移除並返問佇列頭部的元素 如果佇列為空,則返回null
peek 返回佇列頭部的元素 如果佇列為空,則返回null
put 新增一個元素 如果佇列滿,則阻塞
take 移除並返回佇列頭部的元素