Deque 是 “*double ended queue
(双端队列)” 的缩写,通常读为 “deck
*”,是一个线性集合,支持在两端插入和移除元素。
三种用途
双端队列 (两端都可进出)
Deque<Integer> deque = new LinkedList<>();
操作 | Special value | Throws exception | Special value | Throws exception |
Insert | offerFirst(e) | addFirst(e) | offerLast(e) | addLast(e) |
Remove | pollFirst() | removeFirst() | pollLast() | removeLast() |
Examine | peekFirst() | getFirst() | peekLast() | getLast() |
# Insert
offerFirst(e) offerLast(e)
addFirst(e) addLast(e)
# Remove
pollFirst() pollLast() null
removeFirst() removeLast() NoSuchElementException
# Examine
peekFirst() peekLast() null
getFirst() getLast() NoSuchElementException
普通队列 (一端进另一端出)
Queue<Integer> queue = new LinkedList();
Deque<Integer> deque =new LinkedList();
操作 | Queue方法 Special value | 等效Deque方法 Special value |
Insert | offer(e) | offerLast(e) |
Remove | poll() | pollFirst() |
Examine | peek() | peekFirst() |
| Queue方法 Throws exception | 等效Deque方法 Throws exception |
Insert | add(e) | addLast(e) |
Remove | remove() | removeFirst() |
Examine | element() | getFirst() |
堆栈
Deque<Integer> deque = new LinkedList<>();
Stack<Integer> stack = new Stack<>();
操作 | Stack Throws exception | 等效Deque方法 Throws exception |
Insert | push(e) | addFirst(e) |
Remove | pop() | removeFirst() |
Examine | peek() | getFirst() |
参考
https://blog.csdn.net/qq_42398447/article/details/125957910
https://blog.csdn.net/devnn/article/details/82716447
https://www.likecs.com/show-203674798.html
还没有评论,来说两句吧...