温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Queue队列是什么

发布时间:2026-09-13 23:22:17 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在 Java 中,Queue(队列) 是一种集合(Collection),用于按照特定顺序存储和访问元素,通常遵循 FIFO(先进先出,First In First Out) 原则。


一、Queue 是什么?

Queue 是 Java 集合框架(java.util)中的一个接口:

public interface Queue<E> extends Collection<E>

它的核心特点是:

  • 元素从队尾添加(offer / add)
  • 元素从队头取出(poll / remove)
  • 常用于任务调度、消息队列、缓冲区等场景

二、Queue 的常用方法

Queue 对操作失败有两种处理方式:

1️⃣ 抛出异常的方法

方法 说明
add(e) 入队,失败抛异常
remove() 出队,队列空抛异常
element() 查看队头,不删除

2️⃣ 返回特殊值的方法(推荐)

方法 说明
offer(e) 入队,失败返回 false
poll() 出队,空返回 null
peek() 查看队头,空返回 null

✅ 实际开发中更推荐使用 offer / poll / peek


三、Queue 的常见实现类

1️⃣ LinkedList(普通队列)

Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
System.out.println(queue.poll()); // 1

2️⃣ ArrayDeque(高效双端队列)

Queue<Integer> queue = new ArrayDeque<>();

3️⃣ PriorityQueue(优先队列)

  • 不是 FIFO
  • 按优先级排序(默认自然顺序)
Queue<Integer> pq = new PriorityQueue<>();
pq.offer(3);
pq.offer(1);
pq.poll(); // 1

4️⃣ 阻塞队列(并发用)

  • ArrayBlockingQueue
  • LinkedBlockingQueue
  • ConcurrentLinkedQueue

用于多线程环境


四、Queue 使用示例

Queue<String> queue = new LinkedList<>();

queue.offer("A");
queue.offer("B");
queue.offer("C");

while (!queue.isEmpty()) {
    System.out.println(queue.poll());
}

输出:

A
B
C

五、Queue vs Stack

对比 Queue Stack
顺序 FIFO LIFO
入 offer push
出 poll pop

六、一句话总结

Java 中的 Queue 是一种用于存储“等待处理元素”的集合,通常先进先出,常用于任务排队和数据处理。

如果你愿意,我也可以帮你讲:

  • Queue 和 Deque 的区别
  • 阻塞队列怎么用
  • 用 Queue 写一个简单的生产者消费者模型
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手