Java中队列(Queue)的用法
1.什么是队列
队列(Queue)是一种线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,也就是我们常说的先进先出,在一些算法中比较常见,比如BFS算法。
2.使用
-
LinkedList实现了Queue的接口,因此在声明Queue变量的时候可以直接使用
Queue<type> queue = new LinkedList<type>();
-
添加元素
queue.offer() queue.add()
offer和add的区别在于:
- offer的时候,如果添加失败,比如超出数量限制,会返回false,这样的话就可以将田间失败的逻辑很方便的添加进代码中
- add的时候,如果添加失败,会直接抛出异常
-
获得队头元素并删除
queue.poll() queue.remove()
poll和remove的区别在于
- poll的时候,如果出现异常,会返回null值,这样程序可以方便的进行异常的判断
- remove的时候,如果出现异常,会直接抛出异常
-
获得队头元素
queue.peek() queue.element()
peek和element的区别:
- peek:如果队列为空,返回null值
- element:如果队列为空,抛出异常