Queue 与 Deque 的区别
Queue 扩展了 Collection 的接口,是单端队列,只能从一端插入元素,另一端删除元素,
Deque 扩展了 Queue 的接口,是双端队列,增加了在队首和队尾进行插入和删除的方法,在队列的两端均可以插入或删除元素。
Queue 接口 | 抛出异常 | 返回特殊值 |
---|---|---|
插入队尾 | add(E e) | offer(E e) |
删除队首 | remove() | poll() |
查询队首元素 | element() | peek() |
Deque 接口 | 抛出异常 | 返回特殊值 |
---|---|---|
插入队首 | addFirst(E e) | offerFirst(E e) |
插入队尾 | addLast(E e) | offerLast(E e) |
删除队首 | removeFirst() | pollFirst() |
删除队尾 | removeLast() | pollLast() |
查询队首元素 | getFirst() | peekFirst() |
查询队尾元素 | getLast() | peekLast() |
Deque 还提供有 push() 和 pop() 等其他方法,可用于模拟栈。实现类LinkedList既可以当栈使用也可以当队列。