博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Queue 队列的用法
阅读量:4707 次
发布时间:2019-06-10

本文共 1958 字,大约阅读时间需要 6 分钟。

队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。 以下实例演示了队列(Queue)的用法:import java.util.LinkedList;import java.util.Queue;public class Main {    public static void main(String[] args) {        //add()和remove()方法在失败的时候会抛出异常(不推荐)        Queue
queue = new LinkedList
(); //添加元素 queue.offer("a"); queue.offer("b"); queue.offer("c"); queue.offer("d"); queue.offer("e"); for(String q : queue){ System.out.println(q); } System.out.println("==="); System.out.println("poll="+queue.poll()); //返回第一个元素,并在队列中删除 for(String q : queue){ System.out.println(q); } System.out.println("==="); System.out.println("element="+queue.element()); //返回第一个元素 for(String q : queue){ System.out.println(q); } System.out.println("==="); System.out.println("peek="+queue.peek()); //返回第一个元素 for(String q : queue){ System.out.println(q); } }}以上代码运行输出结果为:abcde===poll=abcde===element=bbcde===peek=bbcde

 

 

 

 Queue  概念

队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个 已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程进行合作时,阻塞队列是很有用的工具。工作者线程可 以定期地把中间结果存到阻塞队列中而其他工作者线线程把中间结果取出并在将来修改它们。队列会自动平衡负载。如果第一个线程集运行得比第二个慢,则第二个 线程集在等待结果时就会阻塞。如果第一个线程集运行得快,那么它将等待第二个线程集赶上来。下表显示了jdk1.5中的阻塞队列的操作: add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常remove   移除并返回队列头部的元素    如果队列为空,则抛出一个NoSuchElementException异常element  返回队列头部的元素             如果队列为空,则抛出一个NoSuchElementException异常offer       添加一个元素并返回true       如果队列已满,则返回falsepoll         移除并返问队列头部的元素    如果队列为空,则返回nullpeek       返回队列头部的元素             如果队列为空,则返回nullput         添加一个元素                      如果队列满,则阻塞take        移除并返回队列头部的元素     如果队列为空,则阻塞 remove、element、offer 、poll、peek 其实是属于Queue接口。

 

 

转载于:https://www.cnblogs.com/mr-wuxiansheng/p/6705499.html

你可能感兴趣的文章
HDU1532 网络流最大流【EK算法】(模板题)
查看>>
PHP使用curl替代file_get_contents
查看>>
Webstorm通用设置
查看>>
jquery倾斜的动画导航菜单
查看>>
JAVA IO流的简单总结+收集日志异常信息
查看>>
类型转换与键盘输入
查看>>
面向对象(2)
查看>>
运算符(1)
查看>>
掷骰子游戏和条件语句
查看>>
循环语句
查看>>
加标签的continue用法
查看>>
递归算法
查看>>
java继承 、方法重写、重写toString方法
查看>>
SQL注入原理-手工联合注入查询技术
查看>>
实验3 SQL注入原理-万能密码注入
查看>>
redis cluster
查看>>
feign传输String json串 自动转义 \ 解决方法
查看>>
本站已稳定运行了XX天,网页时间显示功能实现方法
查看>>
实习的开始阶段
查看>>
搭建第一个node服务器
查看>>