Java Queue 接口
Queue 接口定义了队列数据结构。在本教程中,我们将了解 Java Queue 接口及其方法。
在本教程中,我们将了解 Java Queue 接口及其方法。
Java 集合框架的 Queue
接口定义了队列数据结构的功能。 Queue
接口扩展了 Collection
接口。
在队列中,元素以先进先出的方式存储和访问。就像排队买票一样,先来排队的人,最先买到票,最先离开队伍。
Queue 接口的字接口
以下几个接口扩展了 Queue
接口:
Deque
: 双向队列BlockingQueue
: 阻塞队列BlockingDeque
: 双向阻塞队列
实现队列的类
Queue
是一个接口,有几个类直接或间接的实现了 Queue
接口:
如何使用队列?
在 Java 中,我们必须导入 java.util.Queue
包才能使用 Queue
.
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();
// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();
// Priority Queue implementation of Queue
Queue<String> animal 3 = new PriorityQueue<>();
在这里,我们已经分别使用 LinkedList
, ArrayDeque
和 PriorityQueue
类创建了不同的队列实例。
队列方法
Queue
接口包含 Collection
接口的所有方法,这是因为 Queue
接口扩展了 Collection
接口。
Queue
接口的一些常用方法是:
add()
- 将指定的元素插入队列。如果插入成功,则返回true
,否则抛出异常。offer()
- 将指定的元素插入队列。如果插入成功,则返回true
,否则返回false
。element()
- 返回队列的头部元素。如果队列为空,则抛出异常。peek()
- 返回队列的头部。如果队列为空则返回null
。remove()
- 移除并返回队列的头部元素。如果队列为空,则抛出异常。poll()
- 移除并返回队列的头部。如果队列为空则返回null
。
队列接口的实现
- LinkedList
import java.util.Queue;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
// 使用 LinkedList 创建队列
Queue<Integer> numbers = new LinkedList<>();
// 插入元素
numbers.offer(1);
numbers.offer(2);
numbers.offer(3);
System.out.println("Queue: " + numbers);
// 访问队列的元素
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// 从队列中删除元素
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
输出
Queue: [1, 2, 3]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 3]
要了解更多信息,请访问 Java LinkedList。
- PriorityQueue
import java.util.Queue;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
// 使用 PriorityQueue 创建队列
Queue<Integer> numbers = new PriorityQueue<>();
// 插入元素
numbers.offer(5);
numbers.offer(1);
numbers.offer(2);
System.out.println("Queue: " + numbers);
// 访问队列元素
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// 从队列中删除元素
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
输出
Queue: [1, 5, 2]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 5]
要了解更多信息,请访问 Java PriorityQueue。
在接下来的教程中,我们将详细了解 Queue
接口的不同子接口及其实现类。