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. jmeter参数化之 CSV data set config

    第一步:测试计划右键--创建线程组   第二步:选择线程组:右键--sample---创建:http request 配置协议类型和服务名称,method 和path 第三步:选择线程组下的http ...

  2. Liunx 命令之链接操作

    Linux 系统中有软链接和硬链接两种特殊的"文件". 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名 ...

  3. PL/SQL中文乱码问题

    本人的使用情况是: 笨既没有安装Oracle,配置了PLSQL,在查询含有中文数据的时候遇到了查询的数据中有中文乱码的问题,中文显示为???,并且软件的某些提示也会出现.   先进行查询确认编码:   ...

  4. 软件-效率:Microsoft To Do

    ylbtech-软件-效率:Microsoft To Do Microsoft To Do To Do 让你从工作到娱乐都保持专注. 1.返回顶部 1. 智能每日计划 使用“我的一天”,用智能个性化建 ...

  5. 【React自制全家桶】四、React中state与props的分析与比较

    一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...

  6. Selenium 2自动化测试实战22(处理HTML5的视频播放)

    一.处理HTML5的视频播放 大多数浏览器使用控件(如Flash)来播放视频,但是,不同的浏览器需要使用不同的插件.HTML5定义了一个新的元素<video>,指定了一个标准的方式来嵌入电 ...

  7. JAVA处理链表经典问题

    定义链表节点Node class Node { private int Data;// 数据域 private Node Next;// 指针域 public Node(int Data) { // ...

  8. Delphi让控件随着窗口的大小而改变

    Delphi让控件随着窗口的大小而改变方法1:设置Anchors属性,把akLeft,akTop,akRight,akBottom都设为True.方法2:设置Align属性,其值为alClient.

  9. 基于durid的JDBCUtils工具类

    1.JDBCUtils类 package com.alphajuns.utils; import com.alibaba.druid.pool.DruidDataSourceFactory; impo ...

  10. MR1和MR2的工作原理

    MapReduce1 分为6个步骤: 1.作业的提交 1).客户端向jobtracker请求一个新的作业ID(通过JobTracker的getNewJobId()方法获取,见第2步 2).计算作业的输 ...