Queue
- 先入先出(FIFO)的數(shù)據(jù)結(jié)構(gòu)
boolean add(E element)
boolean offer(E element)
在隊(duì)列尾部添加元素表窘,如果隊(duì)列已滿褪迟,add將拋出IllegalStateException
剧腻,offer返回false
public boolean add(E e) {
if (offer(e))
return true;
else
throw new IllegalStateException("Queue full");
}
E remove()
E poll()
刪除并返回隊(duì)頭元素耻警,如果隊(duì)空隔嫡,remove拋出NoSuchElementException
腮恩, poll返回null
public E remove() {
E x = poll();
if (x != null)
return x;
else
throw new NoSuchElementException();
}
E element()
E peek()
返回隊(duì)頭元素,如果隊(duì)空荡含,element拋出NoSuchElementException
, peek返回null
public E element() {
E x = peek();
if (x != null)
return x;
else
throw new NoSuchElementException();
}
上面三段代碼來(lái)自jdk1.8 java.util.AbstractQueue
Deque
- 雙端隊(duì)列误债,只能在隊(duì)列的首尾進(jìn)行操作
- 實(shí)現(xiàn)類:ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList
- Deque被推薦用來(lái)取代Stack類
Summary of Deque methods
||First Element (Head)||Last Element (Tail)||
|-|
||Throws exception|Special value|Throws exception|Special value|
|Insert|addFirst(e)|offerFirst(e)|addLast(e)|offerLast(e)|
|Remove|removeFirst()|pollFirst()|removeLast()|pollLast()|
|Examine|getFirst()|peekFirst()|getLast()|peekLast()|