Collection接口的子接口——Queue接口
https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html
public interface Queue<E> extends Collection<E>
E是Queue中元素的类型。
父接口:Collection<E>, Iterable<E>
子接口:BlockingDeque<E>, BlockingQueue<E>, Deque<E>, TransferQueue<E>
常见实现类: ArrayDeque、 LinkedList
一、介绍
Queue(队列)是一个专为进行处理前保存元素而设计的集合。
除了Collection接口中基本操作外,Queue还提供了其它的插入、获取和检查操作。每种操作有两种形式的方法:一种是当操作失败时抛出异常;另一种是失败时返回特殊的值(null or false)。
后一种形式的插入操作,是专门为有容量限制的Queue实现设计的,在大多数的实现类中,插入操作不会失败。
| throws exception | return value | |
| Insert | add(e) | offer(e) |
| Remove | remove() | poll() |
| Examine | element() | peek() |
队列通常但不一定以FIFO(先进先出)方式排列元素。
例如,优先队列,根据它提供的比较器进行排序,或者根据元素的自然排序。还有栈(LIFO Queue),它的排序规则是LIFO。
不论是采用哪种排序,Queue的头部都是那个通过remove()或poll()来移除的元素。
在FIFO queue中,新的元素都插入队列的尾部。不同的实现类有不同的规则。
Queue通常不允许插入null元素,然而一些实现类比如LinkedList,并不禁止null值的插入。但是我们仍然需要避免插入null元素,因为当Queue为空时,poll()会返回null。
Queue的实现类一般不会重写equals()和hashcode(),而是直接继承Object类中的版本。
Queue接口是Java Collections Framework的成员。
二、方法
1、boolean add(E e)
若没有超出容量限制,插入指定元素。
操作成功返回true;
如果当前没有空间可用,抛出一个IllegalStateException
2、boolean offer(E e)
若没有超出容量限制,插入指定元素。
操作成功返回true;失败返回false。
在有容量限制的队列中,这个方法比add()更好。
3、E remove()
检索并删除队列的头部元素,还将它返回。
队列为空时抛出异常。
4、E poll()
检索并删除队列的头部元素,并将它返回。
队列为空时返回null。
5、E element()
检索并返回头部元素。
队列为空时,抛出出异常
6、E peek()
检索并返回头部元素。
队列为空时,返回null。
Collection接口的子接口——Queue接口的更多相关文章
- Java中的集合(三)继承Collection的Queue接口
Java中的集合(三)继承Collection的Queue接口 一.Queue介绍 Queue接口继承自Collection接口,是Java中定义的一种队列数据结构,元素是有序的(按插入顺序排序),先 ...
- 16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)
16.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同 ...
- Collection接口的子接口——Deque接口
https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html public interface Deque<E> exten ...
- LinkedList子类与Queue接口
LinkedList表示的是一个链表的操作类.定义如下: public class LinkedList<E> extends AbstractSequentialList<E> ...
- 集合框架之Queue接口
Queue接口 在处理元素前用于保存元素的 collection.除了基本的 Collection 操作外,队列还提供其他的插入.提取和检查操作.每个方法都存在两种形式:一种抛出异常(操作失败时),另 ...
- Java中的队列:java.util.Queue接口
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...
- java中Queue接口
Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Queue接 口.Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类 ...
- Java集合类——Set、List、Map、Queue接口
目录 Java 集合类的基本概念 Java 集合类的层次关系 Java 集合类的应用场景 一. Java集合类的基本概念 在编程中,常需要集中存放多个数据,数组是一个很好的选择,但数组的长度需提前指定 ...
- Queue接口的实现类竟然有一个是LinkedList,一个是优先队列(同一个接口,只改了不同的实现类,附源码)
输出是: Queue接口底层换一个实现类,照样的是调用Queue接口中的方法 import java.util.HashMap; import java.util.LinkedList; import ...
随机推荐
- [CSP-S模拟测试]:序列(二分答案+树状数组)
题目传送门(内部题98) 输入格式 第一行一个整数$n$,第二行$n$个整数$a_1\sim a_n$,第三行$n$个整数$b_1\sim b_n$. 输出格式 一行一个整数表示$\max(r-l+1 ...
- websphere gc策略调整
根据应用服务器处理的特性,适配不同的gc策略,验证程序最适合程序的gc策略: server.xml路径: xmlcells/PBOCCell/nodes/PBOCNode01/servers/PBOC ...
- ORACLE PSU SPU (2015-11-04)
Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID 145 ...
- git——sourceTree
基本操作 修改密码怎么办? Tools → Options → Authentication 修改密码:或者删除账户,重新拉取需用户名.密码,重新输入即可
- flask 学习(二)
安装了flask扩展 以及flask-bootstrap 默认情况下,flask在template文件夹寻找模板. flask 加载的是Jinja2模板,该模板引擎在flask中由函数render_t ...
- linux常用命令(21)tar命令
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...
- subprocess.call 使用
1.subprocess.call 里面的命令分开写,实例如下: subprocess.call 是不能作为赋值的,需要用到 subprocess.check_output 函数,而且如果要引用赋值就 ...
- python常见报错
1.Pycharm No module named requests 的解决方法 pip install requests 然后重启pycharm
- Android测试之查看package和activity名称的方法
方法一:使用aapt //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.命令行中切换到aapt.exe目录执行:aapt dump badging + 路径 ...
- staticmethod自己定制
class StaticMethod: def __init__(self,func): self.func=func def __get__(self, instance, owner): #类来调 ...