java 队列方法详解「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
一、队列支持的方法(Queue)
throw exception | return special value | |
---|---|---|
insert | add 1、增加元素不能为null 2、其他异常,比如有界队列 | offer 1、元素不能为null 2、实现内部调用addFirst,既也可能抛出异常 |
remove | remove 队列空时:NoSuchElementException | poll 队列空时:return null |
examine | element 队列空时:NoSuchElementException | peek 队列空时:return null |
二、双端队列(Deque)
Deque继承自Queue接口,可以作为单端队列使用
队头操作(Head) | 队尾操作(Tail) | |||
---|---|---|---|---|
throw exception | return special value | throw exception | return special value | |
Insert | addFirst 1、增加元素不能为null 2、其他异常,比如有界队列 | offerFirst 1、元素不能为null 2、实现内部调用addFirst,既也可能抛出异常 | addLast 同addFirst | offerLast 1、元素不能为null 2、实现内部调用addFirst,既也可能抛出异常 |
remove | romoveFirst 队列空时:NoSuchElementException 也就是说,使用时必须判空 | pollFirst 队列空时:return null | removeLast 队列空时:NoSuchElementException | pollLast 队列空时:return null |
examine | getFirst (变态,element成了get) 队列空时:NoSuchElementException 使用时必须判空 | peekFirst 队列空时:return null | getLast 队列空时:NoSuchElementException | peekLast 队列空时:return null |
三、栈
Deque定义了LIFO的栈操作
栈方法 | 内部调用 | 备注 |
---|---|---|
push | addFirst | 1、元素不能为空 2、可能抛出异常,内部调用的是addFirst |
pop | removeFirst | 队列空时,会抛出异常NoSuchElementException |
peek | peekFirst | return special value |
四、阻塞队列BlockingQueue
Throws exception | Special value | Blocks | Times out | |
---|---|---|---|---|
insert | add(e) | offer(e) | put(e) | offer(e, time, unit) |
remove | remove() | poll() | take() | poll(time, unit) |
examine | element() | peek() | |
单词不够用了吧
五、队列框架图
脉络只是主要的继承或实现脉络,没有包括collection等相关的接口或类实现脉络
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156656.html原文链接:https://javaforall.cn
相关文章
- java calendar 设置小时_Java Calendar.set 方法设置时间的问题
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- 菜鸟教程java_JAVA笔记(菜鸟教程)[通俗易懂]
- Java基础知识点笔记(一):java中的取整与四舍五入
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java数组去重_JAVA数组去重常用方法
- java队列Queue方法[通俗易懂]
- java控制台输入数组_Java控制台输入数组并逆序输出的方法实例
- java 优先级队列_JAVA 队列
- java链表排序方法_java链表排序
- java 设置400错误_Java项目报400错误的原因与解决方法
- Java cloneable_java浅克隆和深克隆
- 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )
- 【Java 虚拟机原理】栈帧 | 动态链接 | 方法区 | 字节码文件二进制分析
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java操作MySQL数据库快速入门(java访问mysql)
- 数据库写入Java实现MySQL数据库的写入操作(java向mysql)
- 使用Java连接Linux服务器的简单方法(java连接linux)
- Linux 升级Java:新版本带来的变化(linux升级java)
- 处理实现Redis Java端过期处理的方法(redisjava过期)
- 构建Java应用程序中Redis集群的方法(java连redis集群)
- 运行Linux中定时运行Java程序的实用方法(linux定时java)
- 实现Java实现Redis锁的研究与应用(redis锁java)
- 版本Linux查看Java版本的简单方法(linux 查看java)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- Java中new关键字和newInstance方法的区别分享
- Java线程关闭的3种方法