java队列
Java
在 Java 中,队列通过 Queue 接口实现,常用实现类包括 LinkedList、ArrayDeque 等,使用时需导入 java.util.Queue 和对应的实现类(如 java.util.LinkedList)。 若需要双端队列操作,可使用 Deque 接口(如 ArrayDeque)。
Java 的队列提供以下常用方法:
元素访问
q.peek():返回队首元素,队列为空时返回 null。
q.element():返回队首元素,队列为空时抛出异常。
(仅 Deque)q.getLast():返回队尾元素。
修改
q.add(e) / q.offer(e):在队尾插入元素。add 在容量受限队列中可能抛异常,offer 返回 boolean 表示是否成功。
q.remove() / q.poll():移除并返回队首元素。remove 在队列为空时抛异常,poll 返回 null。
(仅 Deque)q.addLast(e) / q.addFirst(e):在队尾或队头插入元素。
容量
q.isEmpty():判断队列是否为空。
q.size():返回队列中元素的数量。
Java(库方法)
PriorityQueue 是一个自动排序的队列,底层采用堆数据结构,默认是小根堆(即优先取出最小元素)。
基本操作
PriorityQueue pq = new PriorityQueue<>(); // 创建空的优先队列
pq.add(x); pq.offer(x); // 向优先队列添加元素x
pq.remove(); // 移除优先队列中的最小元素
pq.peek(); // 获取优先队列中的最小元素
pq.size(); // 获取优先队列的大小
copy
例子:
PriorityQueue pq = new PriorityQueue<>();
pq.add(3); // pq = [3]
pq.add(1); // pq = [1, 3]
pq.add(4); // pq = [1, 3, 4]
System.out.println(pq.peek()); // 输出: 1
pq.remove(); // pq = [3, 4]