Java集合-Queue【队列实现】

时间:2022-03-22 17:40:46

概述

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

出队顺序:

先进先出(FIFO—first in first out)

队列又可分为:

顺序队列
循环队列

Queue实现

java.util.Queue

分析 如下:

(1)java.util.Queue接口继承自java.util.Collection接口

(2)java.util.Queue接口约定了队列的基本操作:插入、删除、检查。每个操作都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null或false)

(3)队列通常以FIFO【first in first out】的方式排序各个元素

操作名称 抛出异常 返回特殊值
插入 add(e) offer(e)
删除 remove() poll()
检查 element() peak()

源码如下:

public interface Queue<E> extends Collection<E> {
    //将指定的元素插入此队列,成功则返回true,失败则抛出异常
    boolean add(E e);

    //将指定的元素插入此队列
    boolean offer(E e);

    //获取并移除此队列的头。此方法与poll唯一不同在于:此队列为空时将抛出一个异常
    E remove();

    //获取并移除此队列的头,如果此队列为空,则返回null
    E poll();

    //获取队列的头,但是不移除此队列的头。此方法与peek唯一的不同在于:此队列为空时将抛出一个异常
    E element();

    //获取队列的头,但不移除此队列的头;如果此队列为空,则返回 null。 
    E peek();
}