Java队列Queue简述
概述
Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了。Queue的实现类有LinkedList和PriorityQueue。最常用的实现类是LinkedList。
Queue的6个方法分类
抛出异常 | 返回特殊值 | |
---|---|---|
插入 | add(e) | offer(e) |
删除 | remove() | poll() |
检查 | element() | peek() |
-
添加元素(压入):add()、offer()
相同:未超出容量,从队尾添加元素,返回添加的那个元素。
区别:超出容量时,add()方法会抛出异常,offer()方法则返回false。
-
删除元素(弹出):remove()、poll()
相同:容量大于0的时候,删除队头元素并返回该被删除的元素。
区别:在容量为0的时候,remove()会抛出异常,poll()返回false。
-
获取队头元素(不删除):element()、peek()
相同:容量大于0的时候,都返回队头元素,但不删除。
区别:容量为0的时候,element()会抛出异常,peek()返回null。
Queue是一个先进先出的队列
队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。
例子:
public class QueueTest { public static void main(String[] args) { Queue<String> queue = new LinkedList(); queue.offer("元素A"); queue.offer("元素B"); queue.offer("元素C"); queue.offer("元素D"); queue.offer("元素E"); while (queue.size() > 0) { String element = queue.poll(); System.out.println(element); } } }
输出:
元素A 元素B 元素C 元素D 元素E Process finished with exit code 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!