【数据结构】队列(Queue)
Queue
定义
Java中的队列(Queue)是一种先进先出(FIFO)的数据结构。队列只允许在一段进行插入数据操作,称为入队,在另一端进行删除数据操作,称为出队。我们可以把队列形象看作为排队。在最前面的进行出队,从最后面进行入队。

队列的基本概念
FIFO原则:先进入队列的元素将先离开队列
队头:进行删除操作(出队)的一端
队尾:进行插入操作(入队)的一端
语法定义
public interface Queue<E> extends Collection<E>
Java中队列的几种实现方式
Java提供了多种队列的实现,以下只是几种常见的队列实现:
1.LinkedList
·LinkedList类实现了Queue接口,因此可以用作队列
·它是一个双向链表,允许在两端进行高效的插入和删除操作
2.ArrayDeque
·ArrayDeque是一个基于动态数组的双端队列实现
·它提供了高效的插入和删除操作,并且没有容量限制(动态扩容)
·与LinkedList相比,ArrayDeque在大多数情况下性能更优,因为它没有链表节点的开销
3.BlockingQueue
·BlockingQueue是Java并发库中的一个队列接口(阻塞队列),提供了线程安全的操作
·它适用于多线程环境,可以通过put()和take()方法阻塞线程,直到队列中有元素可以插入或取出
·常见的实现类有ArrayBlockingQueue、LinkedBlockingQueue等
注意:由于Queue是接口,不能直接创建实例。需要使用其实现类来创建实例。
如:Queue<Integer> queue=new ArrayDeque<>();
其实,在Java中,并不仅仅只有这三种实现方式,还有优先队列等。这三种队列的实现方式后续会专门讲解。
主要方法
入队:将元素添加到队列的末尾,返回boolean值表示是否成功入队
·boolean add(E e):但与offer方法有一点区别,在无法入队时会抛出异常
·boolean offer(E e)
出队:从队列的头部移除并返回元素
·E remove():返回移除的元素,如果队列为空则会抛出异常
·E poll():返回移除的元素,如果队列为空则返回null
查看队首元素:返回队列头部的元素但不移除它
·E element():返回队首元素,如果队列为空则会抛出异常
·E peek():返回队首元素,如果队列为空则返回null
上述便是Queue接口中的所有方法,在其实现类中还有其他方法。如:在ArrayDeque中有size()、isEmpty().....等方法
循环队列与双端队列
1.循环队列
·循环队列是一种基于数组的队列实现,通过"循环"使用数组空间来避免浪费
·它需要额外的逻辑来处理队列的空和满状态,通常通过保留一个位置或使用标记来判断
2.双端队列(Deque)
·双端队列允许在两端进行插入和删除操作,因此它比普通的队列更加灵活
·Java中的Deque接口及其实现类(如ArrayDeque、LinkedList)提供了双端队列的功能

循环队列和双端队列我们后续也会专门进行讲解。在本章,我们需要学习使用Queue的主要方法
相关文章:
【数据结构】队列(Queue)
Queue 定义 Java中的队列(Queue)是一种先进先出(FIFO)的数据结构。队列只允许在一段进行插入数据操作,称为入队,在另一端进行删除数据操作,称为出队。我们可以把队列形象看作为排队。在最前面的进行出队,从最后面进行入队。 队列…...
机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。 PCA(主成分分析…...
RocketMQ - 常见问题
RocketMQ常见问题 文章目录 RocketMQ常见问题一:消息幂等问题1:什么是消费幂等2:消息重复的场景分析2.1:发送时消息重复2.2:消费时消息重复2.3:Rebalance时消息重复 3:通用解决方案3.1ÿ…...
kafka消费能力压测:使用官方工具
背景 在之前的业务场景中,我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试,测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。 我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部…...
基于Spring Boot的社区居民健康管理平台的设计与实现
目录 1 绪论 1.1 研究现状 1.2 研究意义 1.3 组织结构 2 技术介绍 2.1 平台开发工具和环境 2.2 Vue介绍 2.3 Spring Boot 2.4 MyBatis 2.5 环境搭建 3 系统需求分析 3.1 可行性分析 3.2 功能需求分析 3.3 系统用例图 3.4 系统功能图 4 系统设计 4.1 系统总体描…...
网络安全架构战略 网络安全体系结构
本节书摘来自异步社区《网络安全体系结构》一书中的第1章,第1.4节,作者【美】Sean Convery 1.4 一切皆为目标 网络安全体系结构 当前的大型网络存在着惊人的相互依赖性,作为一名网络安全设计师,对这一点必须心知肚明。Internet就…...
【Spring+MyBatis】_图书管理系统(中篇)
【SpringMyBatis】_图书管理系统(上篇)-CSDN博客文章浏览阅读654次,点赞4次,收藏7次。(1)当前页的内容records(类型为List);参数:userNameadmin&&pas…...
Python - 爬虫利器 - BeautifulSoup4常用 API
文章目录 前言BeautifulSoup4 简介主要特点:安装方式: 常用 API1. 创建 BeautifulSoup 对象2. 查找标签find(): 返回匹配的第一个元素find_all(): 返回所有匹配的元素列表select_one() & select(): CSS 选择器 3. 访问标签内容text 属性: 获取标签内纯文本get_t…...
宝塔面板开始ssl后,使用域名访问不了后台管理
宝塔面板后台开启ssl访问后,用的证书是其他第三方颁发的证书 再使用 域名/xxx 的形式:https://域名:xxx/xxx 访问后台,结果出现如下,不管使用 http 还是 https 的路径访问都进不后台管理 这个时候可以使用 https://ip/xxx 的方式来…...
大一计算机的自学总结:前缀树(字典树、Trie树)
前言 前缀树,又称字典树,Trie树,是一种方便查找前缀信息的数据结构。 一、字典树的实现 1.类描述实现 #include <bits/stdc.h> using namespace std;class TrieNode { public:int pass0;int end0;TrieNode* nexts[26]{NULL}; };Tri…...
docker 安装的open-webui链接ollama出现网络错误
# 故事背景 部署完ollama以后,使用谷歌浏览器的插件Page Assist - 本地 AI 模型的 Web UI 可以比较流畅的使用DeepSeek,但是只局限于个人使用,想分享给更多的小伙伴使用,于是打算使用open-webui 来管理用户,经官网推荐…...
未来游戏:当人工智能重构虚拟世界的底层逻辑
未来游戏:当人工智能重构虚拟世界的底层逻辑 在《赛博朋克2077》夜之城的霓虹灯下,玩家或许已经注意到酒吧里NPC开始出现微表情变化;在《艾尔登法环》的开放世界中,敌人的战术包抄逐渐显露出类人智慧。这些细节预示着游戏产业正站…...
Redis集群主从切换源码解读
一切的开始 打开Redis5.0.5的源码中server.c,找到如下代码,这里运行了一个定时任务,每隔100毫秒执行一次。 /* Run the Redis Cluster cron. *//** 每隔100毫秒执行一次* 要求开启集群模式*/run_with_period(100) {if (server.cluster_enabl…...
javacv将mp4视频切分为m3u8视频并播放
学习链接 ffmpeg-demo 当前对应的 gitee代码 Spring boot视频播放(解决MP4大文件无法播放),整合ffmpeg,用m3u8切片播放。 springboot 通过javaCV 实现mp4转m3u8 上传oss 如何保护会员或付费视频?优酷是怎么做的? - HLS 流媒体加密 ffmpe…...
Golang学习笔记_33——桥接模式
Golang学习笔记_30——建造者模式 Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 文章目录 桥接模式详解一、桥接模式核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、桥接模式的特点三、适用场景1. 多维度变化2. 跨平台开发3. 动态切换实现 四、与其他…...
蜂鸟视图发布AI智能导购产品:用生成式AI重构空间服务新范式
在人工智能技术飞速发展的今天,北京蜂鸟视图正式宣布推出基于深度求索(DeepSeek)等大模型的《AI智能导购产品》,通过生成式AI与室内三维地图的深度融合,重新定义空间场景的智能服务体验。 这一创新产品将率先应用于购物…...
AI服务器散热黑科技:让芯片“冷静”提速
AI 服务器为何需要散热黑科技 在人工智能飞速发展的当下,AI 服务器作为核心支撑,作用重大。从互联网智能推荐,到医疗疾病诊断辅助,从金融风险预测,到教育个性化学习,AI 服务器广泛应用,为各类复…...
数据结构-栈、队列、哈希表
1栈 1.栈的概念 1.1栈:在表尾插入和删除操作受限的线性表 1.2栈逻辑结构: 线性结构(一对一) 1.3栈的存储结构:顺序存储(顺序栈)、链表存储(链栈) 1.4栈的特点: 先进后出(fisrt in last out FILO表),后进先出 //创建栈 Stacklist create_stack() {Stacklist lis…...
安装海康威视相机SDK后,catkin_make其他项目时,出现“libusb_set_option”错误的解决方法
硬件:雷神MIX G139H047LD 工控机 系统:ubuntu20.04 之前运行某项目时,处于正常状态。后来由于要使用海康威视工业相机(型号:MV-CA013-21UC),便下载了并安装了该相机的SDK,之后运行…...
【鸿蒙】ArkUI-X跨平台问题集锦
系列文章目录 【鸿蒙】ArkUI-X跨平台问题集锦 文章目录 系列文章目录前言问题集锦1、HSP,HAR模块中 无法引入import bridge from arkui-x.bridge;2、CustomDialog 自定义弹窗中的点击事件在Android 中无任何响应;3、调用 buildRouterMode() 路由跳转页面前…...
Docker AI Toolkit 2026正式版深度拆解:实测LLM本地推理提速217%,这4个隐藏配置90%用户从未启用
更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026正式版发布背景与核心定位 随着大模型本地化推理、边缘AI部署及MLOps流水线标准化需求激增,Docker官方联合Hugging Face、ONNX Runtime与NVIDIA NGC团队,…...
别再纠结了!Flowable、Activiti、Camunda三大工作流引擎,我这样选型(附真实项目踩坑经验)
三大工作流引擎实战选型:从技术原理到项目落地的深度思考 去年接手一个金融风控系统重构项目时,团队在技术选型阶段对工作流引擎的争论持续了两周。每次会议都像一场没有裁判的辩论赛——有人坚持Activiti的社区成熟度,有人推崇Camunda的企业…...
HTML5在汽车信息娱乐系统开发中的革命性应用
1. HTML5如何重塑汽车信息娱乐系统开发范式汽车信息娱乐系统(In-Vehicle Infotainment, IVI)正在经历一场由HTML5驱动的技术革命。作为从业十余年的车载系统开发者,我见证了从专用嵌入式系统到如今跨平台架构的演进历程。HTML5的出现…...
2026年最新英语作文批改手机APP 帮学生快速提分的实用神器
一、行业深度痛点:为什么你用的作文批改APP没效果? 我们团队做了5年英语作文批改领域的技术测评,接触过近百款相关产品,发现行业共性痛点其实非常突出:对学生来说,要么APP只揪拼写语法错误,根本…...
割草机器人产品设计方案
第二部分:产品设计方案 目标:将市场机会翻译为具体的产品定义与体验,回答“做什么样的产品”。 第7章:产品定位与价值主张 7.1 一句话定义:我们为谁解决什...
【PHP 8.9 GC革命性突破】:内存泄漏率下降73%、循环引用回收提速4.8倍,你还在用PHP 8.1的旧回收器?
更多请点击: https://intelliparadigm.com 第一章:PHP 8.9垃圾回收机制的演进全景 PHP 8.9尚未正式发布(截至2024年,PHP最新稳定版为8.3),但作为社区广泛讨论的前瞻性演进方向,“PHP 8.9”在此…...
你的LaTeX参考文献引用对了吗?详解\cite, \citet, \citep的区别与选用场景
LaTeX参考文献引用权威指南:从基础语法到期刊规范实战 第一次用LaTeX写论文时,我被参考文献引用折磨得差点放弃学术生涯。导师批注的"引用格式不统一"像魔咒一样出现在每一页——有时是"(作者, 年份)",有时变成"作者…...
2026小程序店铺装修模板怎么选?小程序店铺装修教程是什么?
在想要搭建小程序的时候,我们往往会问2026小程序店铺装修模板怎么选?小程序店铺装修教程是什么?的确,这是许多人心中的疑问。老规矩,先看一组数据。《2026年2月北京本地商家数字化发展报告》显示,2026年以来…...
LFM2-2.6B-GGUF实操手册:日志实时查看+err.log错误定位技巧
LFM2-2.6B-GGUF实操手册:日志实时查看err.log错误定位技巧 1. 项目概述 LFM2-2.6B-GGUF是由Liquid AI公司开发的轻量级大语言模型,采用GGUF量化格式,特别适合资源有限的本地部署场景。这个2.6B参数的模型经过量化后体积大幅缩小,…...
Windows下用清华源5分钟搞定ONNX全家桶(含CUDA版本匹配避坑指南)
Windows下5分钟极速部署ONNX全家桶:清华源加速与CUDA版本精准匹配实战 刚接手一个新项目需要部署YOLOv5模型时,我遇到了典型的ONNX环境配置噩梦:ImportError: Could not load library cudnn_ops_infer64_8.dll。这个报错背后是无数开发者共同…...
