Queue Deque 介绍
目录
一. 前言
二. Queue 接口
三. Deque 接口
一. 前言
Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList)。
二. Queue 接口
Queue接口继承自Collection接口,除了最基本的Collection的方法之外,它还支持额外的insertion, extraction和inspection操作。这里有两组格式,共6个方法,一组是抛出异常的实现;另外一组是返回值的实现(没有则返回null)。
三. Deque 接口
Deque是“double ended queue”,表示双向的队列,英文读作"deck"。Deque 继承自 Queue接口,除了支持Queue的方法之外,还支持insert, remove和examine操作,由于Deque是双向的,所以可以对队列的头和尾都进行操作,它同时也支持两组格式,一组是抛出异常的实现;另外一组是返回值的实现(没有则返回null)。共12个方法如下:
当把Deque当做FIFO的Queue来使用时,元素是从Deque的尾部添加,从头部进行删除的; 所以Deque的部分方法是和Queue是等同的。
具体如下:
| Queue Method | Equivalent Deque Method |
|---|---|
| add(e) | addLast(e) |
| offer(e) | offerLast(e) |
| remove() | removeFirst() |
| poll() | pollFirst() |
| element() | getFirst() |
| peek() | peekFirst() |
Deque的含义是“double ended queue”,即双端队列,它既可以当作栈使用,也可以当作队列使用。下表列出了Deque与Queue相对应的接口:
| Queue Method | Equivalent Deque Method | 说明 |
|---|---|---|
| add(e) | addLast(e) | 向队尾插入元素,失败则抛出异常 |
| offer(e) | offerLast(e) | 向队尾插入元素,失败则返回false |
| remove() | removeFirst() | 获取并删除队首元素,失败则抛出异常 |
| poll() | pollFirst() | 获取并删除队首元素,失败则返回null |
| element() | getFirst() | 获取但不删除队首元素,失败则抛出异常 |
| peek() | peekFirst() | 获取但不删除队首元素,失败则返回null |
下表列出了Deque与Stack对应的接口:
| Stack Method | Equivalent Deque Method | 说明 |
|---|---|---|
| push(e) | addFirst(e) | 向栈顶插入元素,失败则抛出异常 |
| 无 | offerFirst(e) | 向栈顶插入元素,失败则返回false |
| pop() | removeFirst() | 获取并删除栈顶元素,失败则抛出异常 |
| 无 | pollFirst() | 获取并删除栈顶元素,失败则返回null |
| peek() | getFirst() | 获取但不删除栈顶元素,失败则抛出异常 |
| 无 | peekFirst() | 获取但不删除栈顶元素,失败则返回null |
上面两个表共定义了Deque的12个接口。添加,删除,取值都有两套接口,它们功能相同,区别是对失败情况的处理不同。一套接口遇到失败就会抛出异常,另一套遇到失败会返回特殊值(false或null)。除非某种实现对容量有限制,大多数情况下,添加操作是不会失败的。虽然Deque的接口有12个之多,但无非就是对容器的两端进行操作,或添加,或删除,或查看。明白了这一点讲解起来就会非常简单。
相关文章:
Queue Deque 介绍
目录 一. 前言 二. Queue 接口 三. Deque 接口 一. 前言 Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然…...
机器学习(23)---Boosting tree(课堂笔记)
文章目录 一、知识记录二、题目2.1 题目12.2 题目22.3 答案书写 一、知识记录 二、题目 2.1 题目1 2.2 题目2 2.3 答案书写...
Excel 导出打不开
$filename iconv("UTF-8", "GB2312//IGNORE", 志愿者列表) . - . date(YmdHis) . .xlsx; header(Content-Type: application/vnd.ms-excel); header(Content-Disposition: attachment;filename".$filename."); header(Cache-Control: max-age0)…...
css钟表数字样式
如图: 代码 font-size: 28px;font-family: Yourname;font-weight: 500;color: #00e8ff;...
一步一步分析ChatGPT,1 粘性,2 传染性, 3 双边网络效应
请按照以下三个维度一步一步分析ChatGPT,1 粘性,2 传染性, 3 双边网络效应,比如亚马逊的买家和商家的关系 ChatGPT的分析 1.1. 粘性 (Stickiness) 定义: 粘性是指产品或服务对用户的吸引力,即用户在使用…...
Arthas(阿尔萨斯):阿里巴巴开源的线上问题诊断工具
背景 通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。 开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同…...
由Django-Session配置引发的反序列化安全问题
漏洞成因 漏洞成因位于目标配置文件settings.py下 关于这两个配置项 SESSION_ENGINE: 在Django中,SESSION_ENGINE 是一个设置项,用于指定用于存储和处理会话(session)数据的引擎。 SESSION_ENGINE 设置项允许您选择不…...
16-spring AOP核心对象的创建
文章目录 1. aop的几个重要概念2. aop bean definition3. AspectJPointcutAdvisor4.AopConfigUtils5.AnnotationAwareAspectJAutoProxyCreator6. 循环依赖1. aop的几个重要概念 参考官方解释:https://docs.spring.io/spring-framework/docs/5.2.9.RELEASE/spring-framework-r…...
Golang 泛型的介绍
引言 Golang是一种现代的编程语言,以其简洁的语法和高效的性能而闻名。然而,与其他一些编程语言相比,Golang在语言层面上缺乏泛型的支持,这使得在处理不同类型的数据时变得有些困难。在本文中,我们将介绍Golang泛型的…...
RK3568笔记四:基于TensorFlow花卉图像分类部署
若该文为原创文章,转载请注明原文出处。 基于正点原子的ATK-DLRK3568部署测试。 花卉图像分类任务,使用使用 tf.keras.Sequential 模型,简单构建模型,然后转换成 RKNN 模型部署到ATK-DLRK3568板子上。 在 PC 使用 Windows 系统…...
甄知科技张礼军:数智化转型助企业破茧成蝶!
数智化浪潮滚滚向前,正席卷各行各业,带领企业从数字化时代跨入数智化时代。可什么是数智化?如何实现数智化转型?已经成为横亘在无数企业面前的大难题! 事实上,数智化是数字化、AI和业务三个要素的交集&…...
Golang Map:高效的键值对容器
1. 引言 在编程中,我们经常需要使用键-值对来存储和操作数据。Golang中提供了一种高效的键值对容器——Map(映射),它提供了快速的查找和插入操作,是处理大量关联数据的理想选择。本文将介绍Golang中的Map,…...
2023年【电工(高级)】报名考试及电工(高级)模拟考试题
题库来源:安全生产模拟考试一点通公众号小程序 2023年【电工(高级)】报名考试及电工(高级)模拟考试题,包含电工(高级)报名考试答案和解析及电工(高级)模拟考…...
伊朗相关的OilRig组织在为期8个月的网络攻击中针对中东政府
导语 伊朗相关的OilRig组织最近在中东政府中展开了一场长达8个月的网络攻击行动。这次攻击导致了文件和密码的被窃取,并且在其中一次攻击中,攻击者还使用了一种名为PowerExchange的PowerShell后门。据Symantec的威胁猎人团队称,他们在一份与T…...
服务器数据恢复-linux+raid+VMwave ESX数据恢复案例
服务器数据恢复环境: 一台某品牌x3950 X6型号服务器,linux操作系统,12块硬盘组建了一组raid阵列,上层运行VMwave ESX虚拟化平台。 服务器故障: 在服务器运行过程中,该raid阵列中有硬盘掉线,linu…...
残疾人求助报警器
残疾人求助报警器 实际上,求助报警对残疾人来说并不是一件容易的事情。首先,由于身体上的缺陷,他们在描述事件经过和罪犯体征时往往存在困难。此外,一些残疾人可能因为自卑或担心被歧视而犹豫不决,甚至选择忍气吞声。…...
【Datawhale】扩散模型学习笔记 第一次打卡
文章目录 扩散模型学习笔记1. 扩散模型库Diffusers1.1 安装1.2 使用 2. 从零开始搭建扩散模型2.1 数据准备2.2 损坏过程2.3 模型构建2.4 模型训练2.5 采样 3. webui 扩散模型学习笔记 1. 扩散模型库Diffusers 1.1 安装 由于diffusers库更新较快,所以建议时常upgr…...
Spring Boot学习笔记
SpringBoot特征 特征 创建独立的 Spring 应用程序 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文件) 提供“入门”依赖项以简化构建配置 尽可能自动配置 Spring 和 第三方库 提供生产就绪功能,例如指标、健康检查和外部化配置 完…...
图像边缘检测--(Sobel、Laplacian、Canny)
1、图像中各种形状的检测是计算机视觉领域中非常常见的技术之一,特别是图像中直线的检测,圆的检测,图像边缘的检测等,下面将介绍如何快速检测图像边缘。 2、边缘是不同区域的分界线,是周围(局部)像素有显著变化的像素的集合,有幅值与方向两个属性。这个不是绝对的定义,…...
【计算机网络笔记】计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 系列文章目录时延带宽积丢包率吞吐量/率&am…...
解决浏览器Cookie本地安全导出问题的技术架构实践
解决浏览器Cookie本地安全导出问题的技术架构实践 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在Web开发和自动化测试领域,浏览器Co…...
CL1252/CL1252M规格书
概述 CL1252X是一款高性能电流模式控制芯片,其工作在正激工作模式,内建专利软启动技术,可适用于不同功率开关管需求。 CL1252X提供完整保护机制,诸如检测过载保护可以省去辅助绕组,以及芯片内置线电压低压保护功能&…...
如何快速解决网易云音乐格式限制:3步免费解密NCM文件终极指南
如何快速解决网易云音乐格式限制:3步免费解密NCM文件终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的加密NCM文件只能在特定客户端播放而困扰吗?ncmdump是一款实用的开源解密工…...
Android轻量级依赖注入框架illuminati:原理、实战与选型指南
1. 项目概述:当“光照派”遇上代码最近在GitHub上闲逛,发现一个名字相当吸睛的项目——LeeKyoungIl/illuminati。初看这个名字,你可能会联想到历史传说中那个神秘的组织,或者丹布朗小说里的情节。但在程序员的语境里,它…...
Arm CMN-600处理器事件接口设计与低功耗优化
1. CMN-600处理器事件接口概述在现代SoC设计中,处理器事件接口(Processor Event Interface)是实现高效电源管理的关键硬件机制。以Arm CMN-600互连架构为例,该接口通过一组精确定义的信号协议,实现了处理器核心与互连网…...
数据结构入门:栈实现全解析
个人专栏:《数据结构-初阶》《经典OJ题目》《C语言》 欢迎各位大佬交流! 目录 一、栈的概念及结构 1、栈的基本概念 2、栈的结构 二、代码实现 0、初始化 1、入栈 2、出栈 3、返回栈顶元素 4、获取栈中有效元素个数 5、检测栈是否为空 6、销毁…...
5分钟搞定!图图的嗨丝造相-Z-Image-Turbo开箱即用,生成你的第一个渔网袜AI作品
5分钟搞定!图图的嗨丝造相-Z-Image-Turbo开箱即用,生成你的第一个渔网袜AI作品 1. 快速了解镜像功能 1.1 镜像是什么? 图图的嗨丝造相-Z-Image-Turbo是一个专门用于生成穿着大网眼渔网袜人物图像的AI模型。它基于Z-Image-Turbo基础模型&am…...
Python异常检测算法实战:隔离森林与LOF应用解析
1. 异常检测的核心价值与挑战在数据分析的实际场景中,异常点就像沙滩上的珍珠——它们可能代表最有价值的信息,也可能是需要剔除的噪声。我在金融风控领域第一次意识到异常检测的重要性,当时一个看似微小的数据异常背后隐藏着数百万美元的欺诈…...
YLB3118 × DeepSeek V4@ACP#国产存储控制芯片,筑牢大模型推理的 “数据基石”
在国产 AI 大模型加速落地的浪潮中,DeepSeek V4 凭借万亿级参数、百万级上下文窗口的硬核实力,成为开源大模型的标杆;而YLB3118 作为国产 PCIe 转 SATA 存储控制芯片的核心代表,以高密度扩展、低功耗、工业级可靠的特性࿰…...
词嵌入技术解析:从Word2Vec到工业应用
1. 词嵌入技术全景解读2013年Word2Vec的横空出世彻底改变了自然语言处理的游戏规则。当时我在处理一个电商评论分类项目,传统TF-IDF方法在语义相似度判断上表现糟糕,直到尝试了词向量——"手机"和"智能手机"的余弦相似度达到0.92&am…...
