深入理解Java集合之---Deque(双端队列)

2,029 阅读1分钟
Deque简介

双端队列(double-ended queue)是一种具有队列和栈的性质的数据结构。
API: interface Deque<E> extends Queue<E>

接口的实现类 实现了这个接口的类有两个,分别是 ArrayDeque,LinkedList

他们底层存储方式不同

ArrayDequeLinkedList
存储方式长度为16的数组链表

使用场景
ArrayDeque:频繁的随机访问操作。
LinkedList:频繁的插入,删除操作以及未知的初始数据量。

双端队列的常用方法
  • addFirst(E):void 在队头添加元素。
  • addLast(E):void 在队尾添加元素。
  • offerFirst(E):boolean 在队头添加元素,并返回是否添加成功。
  • offerLast(E):boolean 在队尾添加元素,并返回是否添加成功。
  • removeFirst():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
  • removeLast():E 删除队尾元素,并返回删除的元素,如果队列为null,抛出异常。
  • pollFirst():E 删除队头元素,并返回删除的元素,如果队列为null,返回null。
  • pollLast():E 删除队尾元素,并返回删除的元素,如果队列为null,返回null。
  • getFirst():E 获取队头元素,如果队列为null,抛出异常。
  • getLast():E 获取队尾元素,如果队列为空,抛出异常。
  • peekFirst():E 获取队头元素,如果队列为null,返回null。
  • peeLast():E 获取队尾元素,如果队列为null,返回null。