java 如何创建queue
创建 Queue 的方法
在 Java 中,可以通过 java.util.Queue 接口及其实现类创建队列。以下是几种常见的实现方式:
使用 LinkedList 实现队列
LinkedList 实现了 Queue 接口,可以作为队列使用:
Queue<String> queue = new LinkedList<>();
queue.add("元素1"); // 添加元素到队尾
queue.offer("元素2"); // 另一种添加方式
String head = queue.poll(); // 移除并返回队头元素
String peek = queue.peek(); // 查看队头元素但不移除
使用 ArrayDeque 实现队列
ArrayDeque 是双端队列,性能通常优于 LinkedList:
Queue<Integer> queue = new ArrayDeque<>();
queue.add(10);
queue.offer(20);
int first = queue.poll();
使用 PriorityQueue 实现优先队列
PriorityQueue 会根据元素的自然顺序或 Comparator 进行排序:
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(30);
priorityQueue.add(10);
priorityQueue.add(20);
// 出队顺序将是10,20,30
阻塞队列的实现
对于并发场景,可以使用 java.util.concurrent 包中的阻塞队列:
LinkedBlockingQueue
BlockingQueue<String> blockingQueue = new LinkedBlockingQueue<>();
blockingQueue.put("任务1"); // 阻塞式添加
String task = blockingQueue.take(); // 阻塞式获取
ArrayBlockingQueue

BlockingQueue<Integer> fixedQueue = new ArrayBlockingQueue<>(100);
fixedQueue.offer(1);
Integer num = fixedQueue.poll();
注意事项
- 队列操作的方法有两套命名规范:
add/remove会抛出异常,offer/poll返回特殊值 - 优先队列的迭代顺序不代表出队顺序
- 阻塞队列常用于生产者-消费者模式
- 根据具体需求选择适合的队列实现,考虑线程安全、容量限制等因素






