队列(queue)是线性表的一种,只允许在该线性表的前端(front,又称为队头)进行获取或删除操作,而在该线性表的后端(rear,又称为队尾)进行插入操作。该线性表具有FIFO(先进先出)的特点,那么Java中如何实现这一功能呢,呵呵呵,Java已经为我们提供了API——Queue,下面通过一个例子来认识一下该API:

import java.util.Queue;
import java.util.LinkedList;public class TestQueue {public static void main(String[] args) {Queue<String> queue = new LinkedList<String>();queue.offer("Hello");//将指定的元素插入此队列(如果立即可行且不会违反容量限制),插入成功返回 true;否则返回 false。当使用有容量限制的队列时,offer方法通常要优于 add方法——add方法可能无法插入元素,而只是抛出一个IllegalStateException异常。 queue.offer("World");queue.offer("!");System.out.println(queue.size());//输出:3String str;while((str=queue.poll())!=null){//获取并移除此队列的头,如果此队列为空,则返回 null。 remove方法也可以获取并移除此队列的头,但该方法与 poll方法的唯一不同在于:如果此队列为空,那么remove方法将抛出NoSuchElementException异常。 System.out.println(str);//换行依次输出:Hello、World、!}System.out.println(queue.size());//输出:0}
}

该API还有两个“获取但并不移除此队列头”方法:

1、element()获取队列的头但不移除此队列的头。如果此队列为空,则将抛出NoSuchElementException异常。
        2、peek()获取队列的头但不移除此队列的头。如果此队列为空,则返回 null。

Java中的队列API——Queue相关推荐

  1. java数组实现队列_使用数组在Java中进行队列实现

    java数组实现队列 什么是队列? (What is a Queue?) Queue is a special type of data structure, which is designed to ...

  2. java中有界队列的饱和策略(reject policy)

    文章目录 AbortPolicy DiscardPolicy DiscardOldestPolicy CallerRunsPolicy 使用Semaphore java中有界队列的饱和策略(rejec ...

  3. Java实现自定义队列和树结构_实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)...

    几次面试都被问到二叉树的层序遍历,需要用到队列这个数据结构,我一直想使用一个队列来实现,但是java里没有一种好的队列的数据结构,我又一次面试用ArrayList去当队列用,但是被面试官说到,是不对的 ...

  4. 源码阅读(34):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(4)

    (接上文<源码阅读(33):Java中线程安全的Queue.Deque结构--ArrayBlockingQueue(3)>) 2.3.3.3.forEachRemaining() 方法 f ...

  5. 源码阅读(32):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(2)

    (接上文<源码阅读(31):Java中线程安全的Queue.Deque结构--ArrayBlockingQueue(1)>) 本篇内容我们专门分析ArrayBlockingQueue中迭代 ...

  6. autocad java api_在java中实现 AutoCAD api

    因为在项目中需要从autoCAD 的dwg文件中提取标题框中的属性插入到数据库中实现图纸的批量入库. 一开始在网上搜索这方面的资料,其中有一些控件可以脱离autoCAD系统提取的,但都是要收费的.比如 ...

  7. Java中常用的API

    文章目录 前言 一.java.lang String StringBuilder Integer parseXXX Math Object System Throwable Thread Runnab ...

  8. JAVA中阻塞队列的类别和区别(转载)

    这篇文章将介绍什么是阻塞队列,以及Java中阻塞队列的4种处理方式,并介绍Java 7中提供的7种阻塞队列,最后分析阻塞队列的一种实现方式. 阻塞队列(BlockingQueue)是一个支持两个附加操 ...

  9. 【java中常用的API】

    java中有很多常用的API,它们提供了便捷的使用方法和工具类,让我们来看一看java中常用的API吧. 1.math类: 它包含基本的数字运算方法,如对数.指数.平方根和三角函数等,一般数据类型为d ...

  10. Java 中调用 Apache API 实现图片文件的 压缩 与 解压 实例

    < Java 中调用 Apache API 实现图片文件的 压缩 与 解压 > 为什么不直接使用 Java JDK 中自带的 API 呢?必须使用 Apache API 实现文件的压缩与解 ...

最新文章

  1. CentOS上编译安装Nginx
  2. python中的模运算符_Python中的字符串模运算符与format函数
  3. 程序员最讨厌的9句话,你可有补充? 1
  4. Angular如何自定义attribute指令
  5. python open ascii codec cant_Python3.6 报错问题:'ascii' codec can't encode character
  6. javaSE---一个小项目(ATM机)
  7. java元组_Java元组Tuple介绍与使用
  8. CentOS7安装mysql数据库完整过程以及安装中遇到的各种问题的解决方案
  9. Unity手游开发与实战
  10. 【重点】程序员面试金典——番外篇之数组中的逆序对
  11. 字和字节和位和16进制数的关系
  12. arcgis api 3.X 几种查询方式比较
  13. 超硬核!数据结构学霸笔记,考试面试吹牛就靠它
  14. mysql存储图片特征向量_图像特征提取之(一)HOG特征
  15. 牛腩新闻发布--TODO
  16. 投资组合分析的 GE McKinsey 矩阵
  17. 让女人60岁都不涨皱纹的秘籍
  18. 用PS通道消除人物脸部斑点的磨皮, 有什么技巧
  19. 计算机更改用户密码,教你怎么修改电脑开机密码
  20. HTTP协议中 POST和GET的区别

热门文章

  1. Virtuabox 虚拟机克隆方法
  2. 解决在firefox浏览器不支持ajax的transport.responseXml方法问题
  3. Tomcat配置监听80端口、配置虚拟主机、日志
  4. 活动选择问题(贪心)
  5. 关于js中的冒泡事件
  6. 建立 CLR Stored Procedure/Function 的小範例
  7. weblogic + apache 负载均衡与Session复制
  8. Delphi 与 DirectX 之 DelphiX(3): 初识 TDXDraw
  9. HTML hidden 属性
  10. 29.TCP/IP 详解卷1 --- 网络文件系统