天天看點

Queue中add和offer、poll和remove、 peek和element差別

offer,add差別:

Queue 中 add() 和 offer()都是用來向隊列添加一個元素。

在容量已滿的情況下,add() 方法會抛出IllegalStateException異常,offer() 方法隻會傳回 false 。一些隊列有大小限制,是以如果想在一個滿的隊列中加入一個新項,多出的項就會被拒絕。

poll,remove差別:

remove() 和 poll() 方法都是從隊列中删除第一個元素。

remove() 的行為與 Collection 接口的版本相似,但是新的 poll() 方法在用空集合調用時不是抛出異常,隻是傳回 null。是以新的方法更适合容易出現異常條件的情況。

peek,element差別:

element() 和 peek() 用于在隊列的頭部查詢元素。

與 remove() 方法類似,在隊列為空時, element() 抛出一個異常,而 peek() 傳回 null