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

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

其他有用的方法:

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

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

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

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

结论:

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

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

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

java 栈 队列 接口

java 栈 队列 接口_Java队列接口相关推荐

  1. java栈编程题_Java实现栈和队列面试题

    面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要 ...

  2. java的iterator接口_java Iterator接口和LIstIterator接口分析_java_脚本之家

    java  Iterator接口和LIstIterator接口分析 目录 1.Iterator接口 2.ListIterator 3.Iterator和ListIterator的区别 正文 在继续看A ...

  3. java工厂到接口_Java基础——接口简单工厂

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 一.接口 1.接口只做规范和声明不做实现: 2.java中类 ...

  4. java supplier接口_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  5. interface接口_Java程序设计--接口interface(笔记)

    有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有继承关系,仅 ...

  6. java 栈的变量_Java栈和局部变量操作(一)

    Java栈和局部变量操作 Java虚拟机是基于栈的机器,几乎所有Java虚拟机的指令都与操作数栈相关.栈操作包括把常量压入操作数栈.执行通用的栈操作.在操作数栈和局部变量之间往返传输值. 1常量入栈操 ...

  7. java map取值_Java Set接口 Map 与枚举

    Set接口 概述 一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素 特点 Set接口是 ...

  8. java 飞信接口_java 飞信接口

    本接口走的是移动wap飞信接口,绝对安全 package net.duohuo.tengzhinei.Feition; import java.io.BufferedReader; import ja ...

  9. java 继承和内部类_Java自学-接口与继承 内部类

    Java 内部类 内部类分为四种: 非静态内部类 静态内部类 匿名类 本地类 步骤 1 : 非静态内部类 非静态内部类 BattleScore "战斗成绩" 非静态内部类可以直接 ...

最新文章

  1. mp4 android自动播放,Android 使用VideoView播放MP4的简单实现
  2. 电脑启动后,没有桌面
  3. 学习 Android O HIDL
  4. WP7页面的数值传递和对象传递
  5. TortoiseSVN 的 bin 目录下面没有 svn.exe(已测试)
  6. 1024,阿里云惊喜 “加油包” 让你 “猿” 力觉醒!
  7. 工科神器matlab高校遭禁用,网友:关我p事,python可取而代之
  8. android builder布局方式,android – AlertDialog.Builder与自定义布局和EditText;无法访问视图...
  9. 常用功能-删除功能测试点
  10. wx.request 请求500弹出来_精选感恩朋友的作文500字七篇
  11. Corel Painter 2022 for Mac(初学者可驾驭的绘画软件)
  12. 进入32位保护模式之路
  13. JAVA——根据QQ群号得到idkey以及QQ群加群链接[网页版本]解决方案
  14. Python手动安装Jieba库(Win11)
  15. GIF动画录制工具(写教程时用的比较小巧的gif工具)
  16. 教你看懂MOSFET数据手册
  17. sqLite数据库读C#
  18. CTF新手抓包找flag
  19. 观察者模式Observer -- 深入理解
  20. Unity--内置转换矩阵

热门文章

  1. Tickets HDU - 1260
  2. 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 Fishing Master
  3. [ZJOI2007]矩阵游戏
  4. 数据结构二之线段树Ⅱ——KiKi‘s K-Number,ball,The Child and Sequence,「雅礼集训 2017 Day1」市场,Atlantis
  5. YBTOJ洛谷P4869:出现位置(线性基)
  6. 欢乐纪中某B组赛【2019.1.28】
  7. jzoj1273-袁绍的刁难【进制转换】
  8. ssl初一组周六模拟赛【2018.4.14】
  9. L. Mod(预处理+分块)
  10. 转圈游戏(luogu 1965)