隊列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的后端進行插入操作。
LinkedList類實現了Queue接口,因此我們可以把LinkedList當成Queue來用。
Java中Queue有一些常用的方法:
offer、add
poll、remove
peek、element
每一行中的兩個函數,實現的功能是一樣的,但也有所不同。
offer,add區別:
一些隊列有大小限制,因此如果想在一個滿的隊列中加入一個新項,多出的項就會被拒絕。
這時新的 offer 方法就可以起作用了。它不是對調用 add() 方法拋出一個 unchecked 異常,而只是得到由 offer() 返回的 false。
poll,remove區別:
remove() 和 poll() 方法都是從隊列中刪除第一個元素。remove() 的行為與 Collection 接口的版本相似,
但是新的 poll() 方法在用空集合調用時不是拋出異常,只是返回 null。因此新的方法更適合容易出現異常條件的情況。
peek,element區別:
element() 和 peek() 用於在隊列的頭部查詢元素。與 remove() 方法類似,在隊列為空時, element() 拋出一個異常,而 peek() 返回 null