Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 中队列的使用

Java 中队列的使用

作者头像
全栈程序员站长
发布于 2022-07-09 03:22:00
发布于 2022-07-09 03:22:00
33600
代码可运行
举报
运行总次数:0
代码可运行

刚才看见群里的一个朋友在问队列的使用,确实在现实的写代码中非常少使用队列的,反正我是从来没使用过。仅仅是学数据结构的时候学过。

以下是我写的一个小样例,希望有不足之处请提出改正。O(∩_∩)O~

看代码:

import java.util.LinkedList;<br />import java.util.Queue;</p> <p>public class TestQueue<br />{<br /> /**<br /> * @param args<br /> * @author JavaAlpha<br /> * Info 測试队列<br /> */<br /> public static void main(String[] args)<br /> {<br /> Queue<String> queue = new LinkedList<String>();<br /> queue.offer(“1”);//插入一个元素<br /> queue.offer(“2”);<br /> queue.offer(“3”);<br /> //打印元素个数<br /> System.out.println(“queue.size()”+queue.size());<br /> //遍历打印全部的元素,安装插入是顺序打印<br /> for (String string : queue)<br /> {<br /> System.out.println(string);<br /> }<br /> }<br />}</p> <p>打印内容:</p> <p>queue.size()3<br />1<br />2<br />3

以下是API中对队列的说明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface Queue<E>
    
     extends 
     Collection<E>

在处理元素前用于保存元素的 collection。除了主要的 Collection 操作外,队列还提供其它的插入、提取和检查操作。每一个方法都存在两种形式:一种抛出异常(操作失败时),还有一种返回一个特殊值(null 或 false,详细取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。

抛出异常

返回特殊值

插入

add(e)

offer(e)

移除

remove()

poll()

检查

element()

peek()

队列通常(但并不是一定)以 FIFO(先进先出)的方式排序各个元素。只是优先级队列和 LIFO 队列(或堆栈)例外,前者依据提供的比較器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。不管使用哪种排序方式,队列的 都是调用 remove()poll() 所移除的元素。在 FIFO 队列中,全部的新元素都插入队列的末尾。其它种类的队列可能使用不同的元素放置规则。每一个 Queue 实现必须指定其顺序属性。

假设可能,offer 方法可插入一个元素,否则返回 false。这与 Collection.add 方法不同,该方法仅仅能通过抛出未经检查的异常使加入�元素失败。offer 方法设计用于正常的失败情况,而不是出现异常的情况,比如在容量固定(有界)的队列中。

remove()poll() 方法可移除和返回队列的头。究竟从队列中移除哪个元素是队列排序策略的功能,而该策略在各种实现中是不同的。remove() 和 poll() 方法仅在队列为空时其行为有所不同:remove() 方法抛出一个异常,而 poll() 方法则返回 null。

element()peek() 返回,但不移除,队列的头。

Queue 接口并没有定义堵塞队列的方法,而这在并发编程中是非经常见的。BlockingQueue 接口定义了那些等待元素出现或等待队列中有可用空间的方法,这些方法扩展了此接口。

Queue 实现通常不同意插入 null 元素,虽然某些实现(如 LinkedList)并不禁止插入 null。即使在同意 null 的实现中,也不应该将 null 插入到 Queue 中,由于 null 也用作 poll 方法的一个特殊返回值,表明队列不包括元素。

Queue 实现通常没有定义 equals 和 hashCode 方法的基于元素的版本号,而是从 Object 类继承了基于身份的版本号,由于对于具有同样元素但有不同排序属性的队列而言,基于元素的相等性并不是总是定义良好的。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119094.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Java】Java队列Queue使用详解
Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了。Queue的实现类有LinkedList和PriorityQueue。最常用的实现类是LinkedList。
全栈程序员站长
2022/09/14
8480
理解Java队列接口Queue的设计
Queue接口不属于Java并发包下面的类,它是java.util下面的一个接口,虽然这个接口跟并发没有直接关系,但是它抽象和定义了在Java里面队列的通用方法,最重要的是这个类也是Java并发大神Doug Lea设计的,所以学习和了解这个接口是非常有必要的。
我是攻城师
2018/09/30
2K0
理解Java队列接口Queue的设计
java队列Queue方法[通俗易懂]
Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, LinkedBlockingQueue, DelayQueue, LinkedList, PriorityBlockingQueue, PriorityQueue和ArrayDqueue。
全栈程序员站长
2022/09/13
7770
java队列Queue方法[通俗易懂]
JAVA基础(26) java.util.Queue的简单用法
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。
Java架构师必看
2021/06/10
4460
java队列(Queue)用法总结[通俗易懂]
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步
全栈程序员站长
2022/09/14
9060
java的Queue
Java中的Queue是一种先进先出(FIFO)的数据结构,它继承自Collection接口,并扩展了java.util.AbstractQueue抽象类。Queue是Java集合框架中最重要的一种数据结构,因为它是Java并发编程中的重要组成部分,可以被用于实现各种任务调度、消息队列、缓存、事件处理等应用场景。本文将对Java中的Queue进行详细介绍,包括Queue的基本概念、特点、用法和示例。
堕落飞鸟
2023/04/03
2970
Java 集合深入理解(9):Queue 队列
该文介绍了Java集合框架中的Queue,包括其使用方法、常见实现类以及注意事项。
张拭心 shixinzhang
2018/01/05
7420
Java 集合深入理解(9):Queue 队列
Java 中的队列 Queue
我们都知道队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了java.util.Queue接口用来表示队列。Java中的Queue与List、Set属于同一个级别接口,它们都是继承于Collection接口。
凯哥Java
2022/12/16
6390
第十四届蓝桥杯集训——Queue
队列是一种受限的数据结构,插入操作只能从一端操作,这一端叫作队尾;而移除操作也只能从另一端操作,这一端叫作队头。针对上面购买奶茶队伍的例子,排在收银员一端的就是队头,而新来的人则要排到队尾。
红目香薰
2023/01/13
2850
第十四届蓝桥杯集训——Queue
【Java】Java双端队列Deque使用详解
Deque是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。
全栈程序员站长
2022/09/14
1.1K0
刷leetcode时,重新认识LinkedList实现栈、队列或者双端队列
如果想进大厂免不了要leetcode,而leetcode时免不了很多题跟栈,队列有关,重新认识一下LinkedList也许能在不时之需时,助你进入大厂。LinkedList实现了Deque和Queue接口,可以按照队列、栈和双端队列的方式进行操作。
BUG弄潮儿
2021/02/03
5890
刷leetcode时,重新认识LinkedList实现栈、队列或者双端队列
Java中队列(Queue)用法
队列(Queue)是一种特殊类型的集合,它遵循先进先出(FIFO - First In First Out)原则,这意味着第一个添加到队列的元素将是第一个被移除的元素。
王也518
2024/04/25
2260
【Java】基础篇-LinkedList
说到 LinkedList,那么我们大家的第一想法就是 链表,是插入删除快,随机访问慢,今天我们就来一探究竟,究竟内部的它是什么构造导致的问题,我们是否可以在使用的时候有一个更好的解决方案。
haoming1100
2019/06/15
5260
Java核心(四)面试必备—你不知道的数据集合
导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧!
磊哥
2018/12/19
4330
Java核心(四)面试必备—你不知道的数据集合
Java 队列详解
Queue 接口与 List、Set 同一级别,都是继承了 Collection 接口。LinkedList 实现了 Deque接口。
子晋
2022/01/18
7180
Java 队列详解
Java 基础(六)——集合源码解析 Queue
Queue继承自 Collection,我们先来看看类结构吧,代码量比较少,我直接贴代码了。
蜻蜓队长
2018/08/03
5160
Java 基础(六)——集合源码解析 Queue
【笔记】算法OJ 杂记C++ Java 容器使用
使用 collectios 工具类 牛客网在线系统也要 引包 import java.util.*; 或者
韩旭051
2021/04/14
9930
数据结构 | Java 队列 —— Queue 详细分析
摘要: 原创出处 https://www.cnblogs.com/lemon-flm/p/7877898.html 「低调人生」欢迎转载,保留摘要,谢谢!
芋道源码
2018/07/31
1.3K0
数据结构 | Java 队列 —— Queue 详细分析
Java并发编程:阻塞队列
Java并发编程:阻塞队列   在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。   在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。   使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产
陈树义
2018/04/13
1K0
Java 7 种阻塞队列详解
队列(Queue)是一种经常使用的集合。Queue 实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set 一样都继承自 Collection。它和 List 的区别在于,List可以在任意位置添加和删除元素,而Queue 只有两个操作:
海星
2020/09/27
9.6K0
相关推荐
【Java】Java队列Queue使用详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验