java中的Queue队列的用法

在这里插入图片描述

大家好,欢迎来到雄雄的小课堂,今天给大家分享的是“java中的Queue队列的用法”

前言:好多人对Queue不是很熟悉,毕竟平时也不怎么用,遇到集合要么List要么map这些常用的,殊不知,java中还有个Queue,今天,我们就来看看Queue的用法。

何为队列?

队列是一种特殊数据结构,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,“先进先出”的场景,和我们生活中的排队类似,谁先来先给谁办理。

Queue队列

Java中,LinkedList类就是实现的Queue接口,因此,我们可以把LinkedList当成队列来使用。

先来看看Queue接口的源码,然后每个方法每个方法的看:


package java.util;public interface Queue<E> extends Collection<E> {boolean add(E e);boolean offer(E e);E remove();E poll();E element();E peek();
}

插入元素:

其中,add方法和offer方法都是可以在队列的尾部添加元素,代码如下:

public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍历for (String s : list) {System.out.print(s+" ");}}

运行结果如下:
在这里插入图片描述
add方法和offer方法的区别:
虽然两个方法都可以实现添加,但是如果队列满的时候,使用add方法时就会报错,而offer方法就不一样了,它在添加失败时不会直接报错,而是会返回false。

删除元素:

remove方法和poll方法都是删除队列中的第一个元素,代码示例如下:

public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍历for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n调用remove方法");list.remove();//遍历for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n调用poll方法");list.poll();//遍历for (String s : list) {System.out.print(s+" ");}}

运行结果如下:
在这里插入图片描述
remove方法和poll方法的区别:
当队列为空时 remove() 方法会报 NoSuchElementException 错; 而 poll() 不会奔溃,只会返回 null。

返回队列的第一个元素:

element方法和peek方法都是返回队列中的第一个元素,代码示例如下:

public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍历for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n调用remove方法");list.remove();//遍历for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n调用poll方法");list.poll();//遍历for (String s : list) {System.out.print(s+" ");}System.out.println("\n-------------");System.out.println("队列中的第一个元素是:"+list.element());System.out.println("队列中的第一个元素是:"+list.peek());}

运行结果如下:
在这里插入图片描述
element方法和peek方法的区别:
和remove方法一样,当队列为空时,调用element方法会抛出异常,而peek则会返回null。

今天的分享就这些,欢迎大家关注公众号雄雄的小课堂获取更多精彩内容

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

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

相关文章

SpringCloud Netflix Eureka

文章目录一、 Eureka简介Eureka组件二、 Eureka和Zookeeper 对比1 什么是CAP定理2 基于CAP定理比对Eureka和Zookeeper三、 搭建Eureka注册中心1 POM文件2 配置文件application.yml3 启动类4 访问Eureka Server WEB服务管理平台四、 Eureka 服务管理平台介绍1 Eureka Server服务…

使用枚举定义常量更好点儿

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;昨天给大家分享的是“java中的Queue队列的用法示例”&#xff0c;今天&#xff0c;分享的主题是“java中&#xff0c;推荐使用枚举定义常量”。 前言&#xff1a;常量&#xff0c;相信大家多不会陌生&#xff0c;常量值一般…

在 Java 中初始化 List 的五种方法

转载自 在 Java 中初始化 List 的五种方法 Java 中经常需要使用到 List&#xff0c;下面简单介绍几种常见的初始化方式。 1.构造 List 后使用 List.add 初始化 List<String> stringList new LinkedList<>(); stringList.add("a"); stringList.add(&…

【2018.4.7】模拟赛之四-ssl2385 猜数【水题】

正题 大意 给出一些询问和答案&#xff0c;询问内容包括: 1. 是否大于一个数 2. 是否小于一个数 3. 是否大于等于一个数 4. 是否小于等于一个数 这是一个-10000到10000的数 求这个数的最小值 代码 #include<cstdio> #include<iostream> using namespace st…

SpringCloud Netflix Ribbon

文章目录一、 Ribbon简介二、 使用Ribbon开发微服务1 创建springcloud工程 和 commons子模块2 开发服务提供者 - ribbonappservice3 开发服务消费者 - ribbonappclient三、 集中式与进程内负载均衡区别四、 Ribbon常见的负载均衡策略1 Ribbon中的常用负载均衡简介2 配置负载均衡…

Entity Framework Core 生成跟踪列

注意&#xff1a;我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布时&#xff0c;功能可能存在变动。 当您设计数据库时&#xff0c;有时需要添加列以跟踪记录何时更改&#xff0c;以及谁进行了更改。例如&#xff0c;您添加以下列&#xff1a; Cre…

老师,我们想看到您的笑容!

“老师&#xff0c;你可以对我们笑笑吗&#xff1f;”今天偶然遇见一位学生在吃饭的路上和我说道。我冲他点了点头&#xff0c;笑道&#xff1a;“好呀”&#xff01;是啊&#xff0c;我是好久没有把笑声带回班级中了。1目前&#xff0c;4班都在倾尽全力的做项目&#xff0c;试…

【2018.4.7】模拟赛之五-ssl2386 序列【dp】

正题 大意 好序列的定义为每一个数是前面一个数的倍数。求1到n里长度为k的好序列的个数 解题思路 f[i][j]f[i][j]表示第i位数为j的最优解&#xff0c;然后动态转移方程 f[i1][j∗k]f[i][j]f[i1][j∗k]f[i1][j∗k]f[i][j]f[i1][j∗k]代码 #include<cstdio> #define p 1…

阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

转载自 阿里巴巴开源 Spring Cloud Alibaba&#xff0c;加码微服务生态建设 本周&#xff0c;Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布&#xff1a;阿里巴巴开源 Spring Cloud Alibaba&#xff0c;并发布了首个预览版本。随后&#xff0c;Spring Cloud…

微软发布Azure Stack更多细节,预计9月交付

在近日举行的微软全球合作伙伴大会上&#xff0c;微软宣布Azure Stack现在开始接受预定&#xff0c;预计9月份就可以交付。Azure Stack是微软公有Azure云的私有云实现。和其他私有云提供商不同&#xff0c;微软将把Azure Stack作为一项基于消费的服务&#xff0c;这和其公有云的…

今天你们表现的真棒!!!

12月5日在报告厅举行了“2020级青鸟4班 HTML网页设计大赛”。从一个洁白如纸的空白页面&#xff0c;到布满五彩斑斓样式的cool页面&#xff0c;是同学们一个字母一个单词的敲打出来的。从头脑空白啥都不会说到现在的条理清晰张嘴就来的演讲&#xff0c;是同学们时时刻刻写稿子背…

再有人问你Netty是什么,就把这篇文章发给他

转载自 再有人问你Netty是什么&#xff0c;就把这篇文章发给他 本文基于Netty4.1展开介绍相关理论模型&#xff0c;使用场景&#xff0c;基本组件、整体架构&#xff0c;知其然且知其所以然&#xff0c;希望给大家在实际开发实践、学习开源项目提供参考。 这是一篇万字长文&a…

【2018.4.7】模拟赛之六-ssl2387 树【图论,树】

正题 大意 给出一个树&#xff0c;每个节点都有值。如果一个节点加上val&#xff0c;那么他的子节点就得加上-val以此类推。有两种操作&#xff1a; &#xff08;1&#xff09;询问一个节点的值 &#xff08;2&#xff09;一个节点的值加上一个数 解题思路 改变就计算到一个…

SpringCloud Netflix Hystrix

文章目录一、 Hystrix简介1 什么是灾难性雪崩效应2 什么是Hystrix二、 服务降级(Ribbon中)三、 服务熔断(Ribbon中)&#xff08;服务降级的强化版&#xff09;四、 请求缓存(Ribbon中)(不推荐)(查询频率高&#xff0c;修改频率低时谨慎使用)五、 Openfeign的雪崩处理1 服务降级…

[信息安全] 3.HTTPS工作流程

0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具&#xff0c;包括&#xff08;对称密码&#xff0c;公钥密码&#xff0c;密码散列函数&#xff0c;混合密码系统&#xff0c;消息认证码码&#xff0c;数字签名&#xff0c;伪随机数&#xff0c;数字证书&#xff09…

如何实现省市关联的下拉列表

前言&#xff1a;在某些电商网站或者APP中&#xff0c;通常填写地址时&#xff0c;会有这样的功能&#xff1a;当我们选择的省份是“山东”时&#xff0c;则城市的下拉列表里所展示的便是山东的城市&#xff0c;当选择的省份是“山西”时&#xff0c;城市的下拉列表所展示的便是…

ssl初一组周六模拟赛【2018.4.7】

前言 先说一下成绩&#xff1a; 姓名3月10日3月17日3月24日3月31日4月7日总分距离被超xjq2803104602405801870340wyc2001304302705001530240hjq40200350300400129010lrz200130380200370128010xxy101004802204601270260hzb01402502004201010178lw3030350222200832147zyc100缺考…

什么样的事才是有意义的

有时候就在想&#xff0c;真正什么样的事才算有意义呢&#xff1f;

在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

引子 在此前的一篇文章中&#xff0c;我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序&#xff0c;看起来非常不错&#xff0c;不是吗&#xff1f;那么&#xff0c;如果我们希望真正在实际的生产环境去部署和运行这个应用程序&#xff0c;应该怎么做呢&#xf…

这也许是你不曾留意过的 Mybatis 细节

转载自 这也许是你不曾留意过的 Mybatis 细节 Mybatis 可以说是 Java 后端的必备技能&#xff0c;可能你和我一样经常使用到它。但有时 cv 多了&#xff0c;会忘记了一些细节处理&#xff0c;比如为什么要加上这个注解&#xff1f;它的作用是什么等等。 这篇文章是我以前写的…