Queue:poll、offer、element、peek
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。
在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。
Queue继承了Collection接口
Queue使用时要尽量避免Collection的add()和remove()方法,add()和remove()方法在失败的时候会抛出异常。
要使用offer()来加入元素,使用poll()来获取并移出元素。
它们的优点是通过返回值可以判断成功与否, 如果要使用前端而不移出该元素,使用element()或者peek()方法。
值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
offer 添加一个元素并返回true 如果队列已满,则返回false
poll 移除并返问队列头部的元素 如果队列为空,则返回null
peek 返回队列头部的元素 如果队列为空,则返回null
put 添加一个元素 如果队列满,则阻塞
take 移除并返回队列头部的元素 如果队列为空,则阻塞
Queue:poll、offer、element、peek相关推荐
- 数据结构Queue:poll、offer、element、peek
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 在队列这 ...
- Queue:poll、offer、element、peek的区别
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 在队列这 ...
- 深信服C++ 三面(技术面、30min、offer)
深信服C++ 三面(技术面.30min.offer) 一.面试官问 你是从哪里过来的呢? 你们校区是和新都校区一样统招的吗 自我介绍 你挑两个你觉得写的最好的项目来说一说吧 讲解两个项目,balaba ...
- 三维GIS/GIS开发学习路线、软件和数据、视频资源推荐
GIS开发学习资源合集来了!!一份前所未有,全网都没有这么详细的资源合集来了,从基础入门视频.实战项目.GIS开发数据合集.开发软件等,囊括了GIS开发学习所以内容. 一.GIS和WebGIS简介: ...
- 【面试专栏】第三篇:Java基础:集合篇-List、Queue
面试中问完基础基本上就是考集合,因为集合的使用在业务开发中经常使用,而且集合的数据结构也是算法的基础,所以你对集合的掌握深度可能决定你有没有接着面的资格 List & Queue 实现类 Li ...
- java基础:13.2 集合框架 - LinkedList、Queue
文章目录 1.Deque 2.Queue 3.ArrayList 和 LinkedList 的区别 4.练习 与ArrayList一样,LinkedList也实现了List接口,诸如add,remov ...
- Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)
一.进程: 1.语法 2.进程间通讯 3.进程池 二.Gevent协程 三.Select\Poll\Epoll异步IO与事件驱动 一.进程: 1.语法 1 简单的启动线程语法 2 def run(na ...
- main线程 子线程 顺序_面试官:线程池如何按照core、max、queue的执行顺序去执行?详解...
前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...
- adguard没有核心 core no_面试官:线程池如何按照core、max、queue的执行顺序去执行?...
前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...
最新文章
- 安卓重要组件#1--ListView创建及基本的使用方法
- 如何挂载initrd.img文件(简单三步)
- linux批量为文件名添加前缀脚本示例
- debian9.8与主机共享问题
- 1584 - Circular Sequence
- 在制作html页面时,在制作Xhtml页面时是先写HTML代码还是先写CSS代码
- sql添加字段并设置外键
- SC-02-04-外包软件开发SOW工作说明书
- 学习笔记:定积分的求解(矩形法)
- illumina测序两束激发光分别是什么颜色,A/T/C/G四个碱基又分别标记了什么颜色的荧光素呢?
- VMware14虚拟机安装苹果系统
- 云服务器1:云服务器能干什么
- 输出的字符串中有空格并且无法替换B e a r e r N D c y Z T g 4 N z A t N 2 N h Z C 0 0 Y 2 E 4 L T g x M W E t O D Y
- Matlab中测程序运行时间
- 为什么淘宝京东的首页这么快
- 大数据技术原理——期末复习storm
- C/C++/Java/Go/Rust,Python喊你来打擂:3秒钟内统计出小于1亿的素数个数
- 云计算机的主要服务形式有哪些,云计算主要服务形式是什么?
- 深富策略:新股申购规则有那些?
- 【C语言】大小端字节序判断 常见笔试题型