在 Java 中,创建 Queue(队列) 通常使用 java.util.Queue 接口,并结合具体的实现类。下面是常见方式和示例。
| 实现类 | 特点 |
|---|---|
LinkedList |
常用,非线程安全,双向链表 |
ArrayDeque |
效率高,非线程安全,推荐使用 |
PriorityQueue |
优先队列(不是 FIFO) |
ConcurrentLinkedQueue |
线程安全,无锁 |
LinkedBlockingQueue |
线程安全,阻塞队列 |
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
import java.util.ArrayDeque;
import java.util.Queue;
Queue<String> queue = new ArrayDeque<>();
Queue<Integer> pq = new PriorityQueue<>();
Queue<Integer> queue = new ArrayDeque<>();
// 入队
queue.offer(1);
queue.offer(2);
// 出队(队列为空返回 null)
Integer val = queue.poll();
// 查看队首(不移除)
Integer head = queue.peek();
| 方法 | 说明 |
|---|---|
add() |
入队,失败抛异常 |
offer() |
入队,失败返回 false |
remove() |
出队,空抛异常 |
poll() |
出队,空返回 null |
element() |
查看队首,空抛异常 |
peek() |
查看队首,空返回 null |
import java.util.concurrent.ConcurrentLinkedQueue;
Queue<String> queue = new ConcurrentLinkedQueue<>();
import java.util.concurrent.LinkedBlockingQueue;
Queue<Integer> queue = new LinkedBlockingQueue<>(10);
import java.util.*;
public class QueueDemo {
public static void main(String[] args) {
Queue<Integer> queue = new ArrayDeque<>();
queue.offer(10);
queue.offer(20);
queue.offer(30);
while (!queue.isEmpty()) {
System.out.println(queue.poll());
}
}
}
如果你有 特定场景(如线程安全、阻塞队列、任务调度、消息队列),我可以给你更合适的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。