Java中的队列API——Queue
队列(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相关推荐
- java数组实现队列_使用数组在Java中进行队列实现
java数组实现队列 什么是队列? (What is a Queue?) Queue is a special type of data structure, which is designed to ...
- java中有界队列的饱和策略(reject policy)
文章目录 AbortPolicy DiscardPolicy DiscardOldestPolicy CallerRunsPolicy 使用Semaphore java中有界队列的饱和策略(rejec ...
- Java实现自定义队列和树结构_实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)...
几次面试都被问到二叉树的层序遍历,需要用到队列这个数据结构,我一直想使用一个队列来实现,但是java里没有一种好的队列的数据结构,我又一次面试用ArrayList去当队列用,但是被面试官说到,是不对的 ...
- 源码阅读(34):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(4)
(接上文<源码阅读(33):Java中线程安全的Queue.Deque结构--ArrayBlockingQueue(3)>) 2.3.3.3.forEachRemaining() 方法 f ...
- 源码阅读(32):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(2)
(接上文<源码阅读(31):Java中线程安全的Queue.Deque结构--ArrayBlockingQueue(1)>) 本篇内容我们专门分析ArrayBlockingQueue中迭代 ...
- autocad java api_在java中实现 AutoCAD api
因为在项目中需要从autoCAD 的dwg文件中提取标题框中的属性插入到数据库中实现图纸的批量入库. 一开始在网上搜索这方面的资料,其中有一些控件可以脱离autoCAD系统提取的,但都是要收费的.比如 ...
- Java中常用的API
文章目录 前言 一.java.lang String StringBuilder Integer parseXXX Math Object System Throwable Thread Runnab ...
- JAVA中阻塞队列的类别和区别(转载)
这篇文章将介绍什么是阻塞队列,以及Java中阻塞队列的4种处理方式,并介绍Java 7中提供的7种阻塞队列,最后分析阻塞队列的一种实现方式. 阻塞队列(BlockingQueue)是一个支持两个附加操 ...
- 【java中常用的API】
java中有很多常用的API,它们提供了便捷的使用方法和工具类,让我们来看一看java中常用的API吧. 1.math类: 它包含基本的数字运算方法,如对数.指数.平方根和三角函数等,一般数据类型为d ...
- Java 中调用 Apache API 实现图片文件的 压缩 与 解压 实例
< Java 中调用 Apache API 实现图片文件的 压缩 与 解压 > 为什么不直接使用 Java JDK 中自带的 API 呢?必须使用 Apache API 实现文件的压缩与解 ...
最新文章
- CentOS上编译安装Nginx
- python中的模运算符_Python中的字符串模运算符与format函数
- 程序员最讨厌的9句话,你可有补充? 1
- Angular如何自定义attribute指令
- python open ascii codec cant_Python3.6 报错问题:'ascii' codec can't encode character
- javaSE---一个小项目(ATM机)
- java元组_Java元组Tuple介绍与使用
- CentOS7安装mysql数据库完整过程以及安装中遇到的各种问题的解决方案
- Unity手游开发与实战
- 【重点】程序员面试金典——番外篇之数组中的逆序对
- 字和字节和位和16进制数的关系
- arcgis api 3.X 几种查询方式比较
- 超硬核!数据结构学霸笔记,考试面试吹牛就靠它
- mysql存储图片特征向量_图像特征提取之(一)HOG特征
- 牛腩新闻发布--TODO
- 投资组合分析的 GE McKinsey 矩阵
- 让女人60岁都不涨皱纹的秘籍
- 用PS通道消除人物脸部斑点的磨皮, 有什么技巧
- 计算机更改用户密码,教你怎么修改电脑开机密码
- HTTP协议中 POST和GET的区别
热门文章
- Virtuabox 虚拟机克隆方法
- 解决在firefox浏览器不支持ajax的transport.responseXml方法问题
- Tomcat配置监听80端口、配置虚拟主机、日志
- 活动选择问题(贪心)
- 关于js中的冒泡事件
- 建立 CLR Stored Procedure/Function 的小範例
- weblogic + apache 负载均衡与Session复制
- Delphi 与 DirectX 之 DelphiX(3): 初识 TDXDraw
- HTML hidden 属性
- 29.TCP/IP 详解卷1 --- 网络文件系统