队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。

在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。

Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用
element()或者peek()方法。

值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

package com.ljq.test;import java.util.LinkedList;
import java.util.Queue;public class QueueTest {public static void main(String[] args) {//add()和remove()方法在失败的时候会抛出异常(不推荐)Queue<String> queue = new LinkedList<String>();//添加元素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);}}
}

转载于:https://www.cnblogs.com/linjiqin/archive/2013/05/30/3107656.html

java.util.Queue用法相关推荐

  1. java中使用队列:java.util.Queue

    在java5中新添加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口. Queue使用时要尽量避免Collection的add() ...

  2. java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例

    本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...

  3. java队列(Queue)用法总结

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 1.队列的特点 队列是一种比较特殊的线 ...

  4. java.util.ResourceBundle用法

    src目录下建三个文件分别为my.properties,my_en_US.properties,my_zh_CN.properties 下面的方法直接在main方法中运行 //获取src目录下my.p ...

  5. Java中队列(Queue)用法

    Java中队列的用法 1. 队列的定义 2. 队列的基本操作 3. Java中队列的应用 1. 队列的定义 队列(Queue):队列简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的 ...

  6. Java 阻塞线程用法

    CountDownLatch 首先先说明CountDownLatch辅助类 CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方 ...

  7. java lifo 队列_1.8 Java 队列 Queue、双端队列 Deque - Java 知识总结与学习

    queue 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口.除了基本的 Collection 操作外,队列还 ...

  8. Java Priority Queue(PriorityQueue)示例

    我们知道, 队列如下:F irst- 我正˚First-ØUT模型,但有时我们需要处理的基础上,优先级队列中的对象. 例如,假设我们有一个应用程序可以为日常交易生成股票报告,并处理大量数据并花费时间来 ...

  9. java的queue类,java集合类深入分析之Queue篇

    简介 Queue是一种很常见的数据结构类型,在Java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...

最新文章

  1. CentOS 如何搭建本地和局域网yum源
  2. java 去掉 时期中的图片,去除图片浅色背景(Java 实现)
  3. 中国交通标志识别,德国交通标志识别
  4. Revit API取得变量的内参名称
  5. 优先级反转和解决方法
  6. solaris 常用软件安装
  7. C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数
  8. idea 导出war包_使用IDEA实现远程代码DEBUG调试教程详解
  9. 基于shell 脚本处理文本数据流程
  10. 动漫美少女生成神器、猫的门禁...2019 年十七大最佳机器学习项目 | 年度盘点...
  11. lisp封装为vlx方法_LSP FAS VLX 文件自动加载方法
  12. MT8665原理图芯片资料介绍
  13. 浏览器transform介绍
  14. 华东师范 2018年 研究生复试上机题解合集
  15. tenacity库 重试代码
  16. 【AP】a pratical guide to robust optimization(2)
  17. 小程序源码:花体字转换器-多玩法安装简单
  18. ESP8266+DHT11温湿度传感器+小爱同学语音智能LED灯(状态可视化)
  19. 高仿微信上传头像附带压缩,旋转图片,附加demo
  20. 转载:python中的pygame编写飞机大战(三) 子弹类的实现

热门文章

  1. python安装步骤电脑版-超详细的小白python3.X安装教程|Python安装
  2. 如何看电脑安装了python-Python教程第1篇:查看电脑是否安装python
  3. r语言和python-R VS Python:R语言是否真的过时了?
  4. python怎么画条形图-用Matplotlib如何绘制条形图、直方图和散点图
  5. python web为什么不火-编程语言里的明星:Python为什么突然不火了?
  6. python怎么学最快-浅谈:从为什么学习python到如何学好python
  7. python怎么判断一个文件是否存在-利用Python如何判断一个文件是否存在
  8. 2018python好找工作吗-2018年为什么要学习Python?Python还有前景吗?
  9. 流程的python-学习《流畅的python》第一天
  10. python推荐系统-python 新闻推荐系统(基于新闻内容推荐)