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接口的更多相关文章

  1. Java中的集合(三)继承Collection的Queue接口

    Java中的集合(三)继承Collection的Queue接口 一.Queue介绍 Queue接口继承自Collection接口,是Java中定义的一种队列数据结构,元素是有序的(按插入顺序排序),先 ...

  2. 16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)

    16.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同 ...

  3. Collection接口的子接口——Deque接口

    https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html public interface Deque<E> exten ...

  4. LinkedList子类与Queue接口

    LinkedList表示的是一个链表的操作类.定义如下: public class LinkedList<E> extends AbstractSequentialList<E> ...

  5. 集合框架之Queue接口

    Queue接口 在处理元素前用于保存元素的 collection.除了基本的 Collection 操作外,队列还提供其他的插入.提取和检查操作.每个方法都存在两种形式:一种抛出异常(操作失败时),另 ...

  6. Java中的队列:java.util.Queue接口

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  7. java中Queue接口

    Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Queue接 口.Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类 ...

  8. Java集合类——Set、List、Map、Queue接口

    目录 Java 集合类的基本概念 Java 集合类的层次关系 Java 集合类的应用场景 一. Java集合类的基本概念 在编程中,常需要集中存放多个数据,数组是一个很好的选择,但数组的长度需提前指定 ...

  9. Queue接口的实现类竟然有一个是LinkedList,一个是优先队列(同一个接口,只改了不同的实现类,附源码)

    输出是: Queue接口底层换一个实现类,照样的是调用Queue接口中的方法 import java.util.HashMap; import java.util.LinkedList; import ...

随机推荐

  1. iPhone/iPad调整事件递交

    UIKit 为应用程序提供了编程手段来简化事件处理或者完全关闭事件流.下面的列表总结了这些方法: 关闭触摸事件的递交. 缺省情况下,视图接收触摸事件,但是你可以设置它的userInteractionE ...

  2. LeetCode---Backtracking && DP

    **322. Coin Change 思路:动态规划,构造一个数组,存入当前index最少需要多少个coin public int coinChange(int[] coins, int amount ...

  3. Linux上安装Python3

    1. 安装支持包 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel ope ...

  4. 显示Pl/Sql Developer window list窗口

    默认情况下Window List窗口是不显示的,这十分不方便 (一)在菜单项的Tools下的Preference选项中的UserInterface中选择Option,在右边对于的Autosave de ...

  5. 网络通信框架之volley

    介绍 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行HTTP通信,Htt ...

  6. ASP.Net Core承载外部程序集

    故事背景   一般情况下ASP.Net Core项目配置可以直接在appsetting.json中添加,也可以在项目中添加新的配置文件.但如果想和其他项目一起实现配置文件通用呢?我们可以用绝对定位去访 ...

  7. Selenium 2自动化测试实战27(unittest重要概念,test fixture、test case、test suite和test runne)

    一.unittest重要概念 4个重要概念:test fixture.test case.test suite和test runner. 1.Test Case一个TestCase的实例就是一个测试用 ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  9. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_7 响应json数据之发送ajax的请求

    编写conroller的方法 @RequestBody获取请求体的内容.当前请求体传递的是json字符串. 拿到了请求的内容

  10. libvirt报错总结

    libvirt 的一些报错总结 出现Permission denied error: internal error process exited while connecting to monitor ...