Java队列接口

介绍:

队列是FIFO(先进先出)抽象数据类型(ADT)。 换句话说,按插入顺序将元素删除。

java.util.Queue是Java 的接口,并且从java.util.Collection扩展。 一些常用的Queue实现类包括LinkedList, ArrayDequePriorityQueue

队列类型:

队列有两个主要类别:

1.阻塞队列:这些是具有固定容量有界队列。 这意味着我们必须在创建队列时提供队列的容量。

java.util.concurrent包中提供了有界队列的实现类 例如,一个ArrayBlockingQueue

2.非阻塞队列: java.util包下的队列实现属于此队列类别。 例如, LinkedList或PriorityQueue

顾名思义, 这些元素是无限制的,我们可以根据需要插入任意数量的元素。

关键方法:

让我们看一下Queue接口公开的最常用方法:

引发异常:

下面的方法将尝试对队列进行操作。 如果由于某种原因(例如由于容量问题)而失败,则会抛出运行时异常:

1.

使用add() ,我们可以将元素添加到队列中:

Queue<Integer> queue = new LinkedList<>();queue.add(1);
queue.add(2);
queue.add(3);

如果元素插入成功,则返回true 。 否则,它将引发IllegalStateException。

2.

我们可以使用remove()方法来检索和删除队列头部的元素

int removedItem = queue.remove();System.out.println(removedItem); //prints 1System.out.println(queue); // [2, 3]

请注意,我们从队列中删除了第一个元素。 因此,现在我们的队列仅包含[2,3]

在空队列上调用时,此方法将引发NoSuchElementException

3.

此方法将仅返回队列的head元素,而不会将其删除

int topItem = queue.element(); // 2System.out.println(queue); //[2, 3]

请注意,我们的队列仍然包含两个元素。

就像remove()一样 ,它将为空队列抛出NoSuchElementException异常。

返回特殊值:

现在,我们将介绍上述方法的细微变化。 这些方法不会抛出异常。 当他们无法执行操作时,他们宁愿返回一些值

1.

就像add()一样 ,我们有一个offer()方法,可以用来插入元素:

Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
queue.offer(3);

如果无法插入,它将返回false。

2.

我们可以使用poll()检索和删除元素:

int removedItem = queue.poll(); // returns 1System.out.println(queue); //[2, 3]

对于空队列,它将仅返回一个值。

3.

element()类似,它只是检索队列的最前面的元素:

int topItem = queue.peek(); // 2System.out.println(queue); //still [2, 3]

由于我们已经删除了1 ,因此这里的顶部元素是2

如果在空队列中使用此方法,则将获得值。

其他有用的方法:

由于QueueCollection接口扩展而来,因此它也从该接口继承方法。 一些有用的包括:

1. size():返回队列的大小

2. contains():如果元素存在于队列中,则返回true

3. isEmpty() 对于空队列,它将返回true 。 否则为false

结论:

在本文中,我们讨论了Java中的Queue接口。 我们介绍了此接口公开的所有主要方法。

成为第一个发表评论的人。

翻译自: https://www.javacodegeeks.com/2019/05/java-queue-interface.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CC1310在868MHz的电路设计

一、CC1310的简单介绍 特点 CC1310器件是一款高度集成、真正的单片解决方案&#xff0c;其整合了一套完整的RF系统及一个片上DC-DC转换器。该器件具有出色的灵敏度和稳定性&#xff08;可选择性和阻断&#xff09;性能&#xff0c;不会以牺牲RF性能为代价来实现低功耗。极低的…

Memobus总线光端机产品功能介绍

Memobus现场总线光纤转换器&#xff0c;提供RS-485串口&#xff0c;符合基于Memobus的串行通信&#xff0c;通信速率4Mbps&#xff0c;单/双光口链网支持。产品支持一路光纤接口&#xff0c;一路总线数据接口&#xff0c;支持两路可级联上下行光纤接口&#xff0c;一路总线数据…

SX1301吞吐量是SX1276/8的多少倍?

1.吞吐量&#xff0c;LoRa网关的重要性能 从广义上讲&#xff0c;网关是连接2个不同网络的设备。如果一个设备&#xff0c;它能将LoRa无线网络和Internet连接起来&#xff0c;它就是一个LoRa网关。 目前&#xff0c;大部分的LoRa网关采用SX1301基带芯片&#xff0c;也有部分使…

【渝粤教育】国家开放大学2018年春季 0690-22T化工原理及实验 参考试题

科目编号&#xff1a;0690 座位号&#xff1a; 2017-2018学年度第二学期期末考试 化工原理及实验试题(B) 2018年7月 一、填空题&#xff08;每空2分&#xff0c;共30分&#xff09; 塔板负荷性能图中有______________条线&#xff0c;它们分别是________________、 ________…

Profibus DP总线隔离器(协议型)产品性能特点介绍

Profibus DP协议型现场总线隔离器&#xff0c;符合Profibus DP协议标准&#xff0c;通信速率6Mbps&#xff08;可选12Mpbs&#xff09;&#xff0c;2路总线电接口数据相互转发&#xff0c;电信号隔离并为电缆系统提供星形链接。接下来就由飞畅科技的小编来为大家详细介绍下Prof…

【渝粤教育】国家开放大学2018年春季 4996T水土保持技术 参考试题

试卷代号&#xff1a;4996 &#xff08;中央广播电视大学&#xff09;2018年春季学期“开放专科”期末考试 水土保持技术试题 2018年7月 一、选择填空&#xff08;每空3分&#xff0c;共30分&#xff09; 1&#xff0e;水土保持技术主要包括水土保持 、生物技术、 和化学防治技…

基于CC1310的915MHz硬件设计

一、概述 CC1310内部结合了超低功耗 RF 收发器和超强48MHz Cortex-M33微控制器&#xff0c;使用ARM Cortex-M0专业无线控制器来处理 ROM 或 RAM 中存储的低层 RF 协议命令&#xff0c;确保了超低功耗和灵活度。时钟速率可以到达48MHz&#xff08;外部使用24M晶振&#xff09;&a…

【渝粤教育】国家开放大学2018年春季 7407-22T药物治疗学(本) 参考试题

试卷代号&#xff1a;7407 座位号 2017-2018学年度第二学期期末考试 药物治疗学&#xff08;本&#xff09;试题 2018年5月 一.填空题&#xff08;每空2分&#xff0c;共40分&#xff09; 1.影响药物作用的机体方面的因素有_________________、、、。 2.控制甲亢症候群的方法有…

rest api 可选参数_可选类型API

rest api 可选参数Java 8引入了Optional类。 简而言之&#xff0c;不是返回null&#xff0c;而是检查null&#xff0c;而是返回Optional实例&#xff0c;该实例可以设置值&#xff0c;也可以不设置值。 这样&#xff0c;您不会因NullPointerException而失败。 我不会讨论Optio…

大功率无线输出电台使用注意事项

随着智慧城市的建设&#xff0c;当前对无线通讯设备的需求越来越多&#xff0c;大功率无线电台需求越来越广泛&#xff0c;在消防&#xff0c;工业和农业等行业中起着举足轻重作用。大功率无线电台的使用方法有一定的要求&#xff0c;如果操作不当&#xff0c;会造成不好的体验…

RS-485总线HUB中继器产品性能特点介绍

RS-485总线HUB中继器&#xff0c;符合RS-485协议&#xff0c;独立3路总线电接口数据相互转发&#xff0c;电信号中继并为电缆系统提供星形链接。接下来就由飞畅科技来为大家详细介绍下RS-485总线HUB中继器产品性能特点&#xff0c;一起来看看吧&#xff01; RS-485总线HUB中继…

SX1268与SX1278、SX1276对比分析以及选型南

1、产品简述 SX1278/1276是Semtech公司在2013年推出的一款远距离、低功耗的无线收发器&#xff0c;是一款性能高的物联网无线收发器&#xff0c;具备特殊的LoRa调制方式&#xff0c;在一定程度上增加了通信距离&#xff1b;而SX1268是一款新产品&#xff0c;同样由Semtech公司在…

【渝粤教育】国家开放大学2018年春季 8634-22TAndroid智能手机编程 参考试题

编号&#xff1a;8634 17-18学年第1学期期末考试 Android智能手机编程 试题&#xff08;开卷&#xff09; 一、选择题&#xff1a;&#xff08;每题4分&#xff0c;共40分&#xff09; 1&#xff0e;Android智能手机平台是基于&#xff08; &#xff09;程序语言来进行应用开…

用Java对HashMap排序

介绍&#xff1a; 在本教程中&#xff0c;我们将学习如何对Java HashMap进行排序。 我们可以按键或按值对HashMap进行排序。 我们将讨论这两种策略。 对Java 为了跟上本文的其余部分&#xff0c;我们首先构造一个HashMap&#xff1a; HashMap<Integer, Student> map …

【渝粤教育】国家开放大学2018年秋季 0008-22T简明现代汉语 参考试题

编号&#xff1a;0025 座位号&#xff1a; 18-19学年第1学期期末考试 数据结构 试题&#xff08;开卷&#xff09; 一、选择题&#xff1a;&#xff08;每题4分&#xff0c;共20分&#xff09; 1&#xff0e;以下&#xff08; &#xff09;不是队列的基本运算。 A&#xff0e…

RS-232转RS-485/422串口转换器产品介绍

RS-232转RS-485/422串口转换器是一款专为工业自动化通信中&#xff0c;解决RS-232接口信号转换成RS-485/422信号的光电隔离型转换器。那么&#xff0c;对于RS-232转RS-485/422串口转换器的产品性能参数你是否了解呢&#xff1f;接下来就由飞畅科技的小编来为大家详细介绍下吧&a…

【应用】如何更好的简化工业现场采集控制?

案例背景 随着工业4.0的发展&#xff0c;工业自动化程度不断提高。实现工业4.0&#xff0c;需要高度的工业化、自动化基础。工业大数据是未来工业发展的关键。全球各国制造业创新战略的实施基础都是工业大数据的搜集和特征。 业内人士提醒,“工业4.0”的发展是一个长期过程,需要…

【渝粤教育】国家开放大学2018年秋季 0161-22T教师职业道德 参考试题

编号&#xff1a;0177 b 2018-2019年度第一学期期末考试 电机学&#xff08;2&#xff09; 试 题 2019年 1 月 一、填空题&#xff08;每空4分 &#xff0c;共40分&#xff09;1&#xff0e;一台隐极三相同步发电机时空向量中j轴与A轴重合&#xff0c;某瞬间转子基本波励磁磁动…

SFP光模块是什么? SFP光模块的类型及应用介绍!

SFP光模块是SFP封装的热插拔小封装模块&#xff0c;最高速率可达10.3G&#xff0c;接口为LC。SFP光模块主要由激光器构成。SFP分类可分为速率分类、波长分类、模式分类。那么&#xff0c;什么是SFP&#xff1f;SFP光模块的类型及应用有哪些&#xff1f;接下来我们就跟随飞畅科技…

基于Semtech LoRa SX1268 电路设计及PCB布局

目录 产品简述 应用环境 电路设计 产品简述 SX1268是Semtech公司推出的一款远距离、低功耗的sub-GHz无线收发器&#xff0c;支持的工作频段涵盖了150–960MHz。SX1268提供了两种调试方式&#xff0c; LoRa以及传统的(G)FSK&#xff0c;是一款高性能物联网无线收发器&#x…