简介
在 Java 中,队列(Queue)是一个非常重要的集合类,它表示一个 先进先出(FIFO,First In First Out)的数据结构。这意味着队列中的元素是按顺序插入的,第一个插入的元素会是第一个被移除的元素。
1、Queue接口
Queue 是 Java 集合框架中的一个接口,定义了队列数据结构的基本操作。Queue 接口继承自 Collection 接口,提供了对队列的基本操作函数。
2、Queue接口常用方法
Queue 接口定义了用于队列操作的方法,其中最常见的操作包括:
插入:添加元素到队列。
删除:移除队列的元素。
查看:查看队列中的元素。
主要方法:
add(E e):将元素 e 插入队列。如果队列已满(对于有限队列),会抛出 IllegalStateException。
offer(E e):将元素 e 插入队列。如果队列已满,返回 false,而不是抛出异常。
remove():移除队列头部的元素。如果队列为空,抛出 NoSuchElementException。
poll():移除队列头部的元素。如果队列为空,返回 null。
element():获取队列头部的元素,但不移除它。如果队列为空,抛出 NoSuchElementException。
peek():获取队列头部的元素,但不移除它。如果队列为空,返回 null。
3、队列的常见实现类
——LinkedList:LinkedList 是 Queue 接口的一个常见实现类,提供了支持队列操作的功能。
——PriorityQueue:PriorityQueue 实现了 Queue 接口,但它是基于优先级堆实现的,因此它不是按插入顺序操作,而是按照元素的优先级(自然排序或自定义比较器排序)来排序元素。
——ArrayBlockingQueue、LinkedBlockingQueue:这两个类是 java.util.concurrent 包中的实现,用于处理多线程中的队列操作,支持线程安全的操作。
——Deque:双端队列接口,它是 Queue 接口的扩展,允许在队列的两端插入和删除元素。Deque 的常见实现有 ArrayDeque 和 LinkedList。
4、使用Queue的常见操作
import java.ut