Deque 是 “double ended queue
(双端队列)” 的缩写,通常读为 “deck
”,是一个线性集合,支持在两端插入和移除元素。
三种用途
双端队列 (两端都可进出)
Deque<Integer> deque = new LinkedList<>();
# 插入
offerFirst(e) offerLast(e) false
addFirst(e) addLast(e) IllegalStateException
# 删除
pollFirst() pollLast() null
removeFirst() removeLast() NoSuchElementException
# 查询
peekFirst() peekLast() null
getFirst() getLast() NoSuchElementException
普通队列 (一端进一端出)
Queue<Integer> queue = new LinkedList();
Deque<Integer> deque =new LinkedList();
插入 offer(e) offerLast(e)
删除 poll() pollFirst()
查询 peek() peekFirst()
插入 add(e) addLast(e)
删除 remove() removeFirst()
查询 element() getFirst()
堆栈 (后进先出)
Stack<Integer> stack = new Stack<>();
Deque<Integer> deque = new LinkedList<>();
插入 push(e) addFirst(e)
删除 pop() removeFirst()
查询 peek() getFirst()
参考
Java双端队列Deque使用详解
Java双端队列Deque使用详解
Java Deque接口 使用方法(栈、队列、双端队列)