Java 集合-Quque

本文将介绍 Java 集合中的 Quque。

一、什么是 Quque?

Quque,队列,特殊的列表,仅允许在队头或对尾进行操作。

二、常用方法

1. Collection 方法

2. 特有方法

方法 说明
add(obj) 添加元素至队尾
remove() 移除队头元素
element() 返回队头元素
peek() 返回队头元素
poll() 返回并删除队头元素
offer() 添加元素至队尾

三、Deque 接口

Deque,double ended queue,即双向队列。

Deque 接口继承自 Queue 接口,规定了双向队列的操作方法。

方法 说明
addFirst(e) / offerFirst(e) / addLast(e) / offerLast(e) 插入头 / 尾,失败则报异常 / 返回错误
removeFirst() / pollFirst() / removeLast() / pollLast() 删除头 / 尾,失败则报异常 / 返回错误
getFirst() / peekFirst() / getLast() / peekLast() 查看头 / 尾,失败则报异常 / 返回错误

四、ArrayDeque

1. 特点

  • 底层通过数组实现
  • 针对双端队列可能在两端任意插入、删除元素的特点,采用了循环数组,以保证空间的充分利用

五、LinkedList

具体请看:

Java 集合-List - LinkedList

六、PriorityQueue

1. 特点

  • 底层通过堆实现

  • 优先队列,能保证每次取出的元素都是队列中权值最小的

    权值的判断可以通过自然顺序,也可以通过构造时传入的 Comparator

2. 具体实现

基于数组实现的小顶堆。

参考