JAVA-容器源码分析之 Deque(双端队列) 其相关的方法

官方解释:

        Queue 也是 Java 集合框架中定义的一种接口,直接继承自 Collection 接口。除了基本的 Collection 接口规定测操作外,Queue 接口还定义一组针对队列的特殊操作。通常来说,Queue 是按照先进先出(FIFO)的方式来管理其中的元素的,但是优先队列是一个例外。

        Deque 接口继承自 Queue接口,但 Deque 支持同时从两端添加或移除元素,因此又被成为双端队列。鉴于此,Deque 接口的实现可以被当作 FIFO队列使用,也可以当作LIFO队列(栈)来使用。官方也是推荐使用 Deque 的实现来替代 Stack。

        ArrayDeque 是 Deque 接口的一种具体实现,是依赖于可变数组来实现的。ArrayDeque 没有容量限制,可根据需求自动进行扩容。ArrayDeque不支持值为 null 的元素。

public interface Queue<E> extends Collection<E> {
    //向队列中插入一个元素,并返回true
    //如果队列已满,抛出IllegalStateException异常
    boolean add(E e);

    //向队列中插入一个元素,并返回true
    //如果队列已满,返回false
    boolean offer(E e);

    //取出队列头部的元素,并从队列中移除
    //队列为空,抛出NoSuchElementException异常
    E remove();

    //取出队列头部的元素,并从队列中移除
    //队列为空,返回null
    E poll();

    //取出队列头部的元素,但并不移除
    //如果队列为空,抛出NoSuchElementException异常
    E element();

    //取出队列头部的元素,但并不移除
    //队列为空,返回null
    E peek();
}

Deque 提供了双端的插入与移除操作,如下表:

 Deque 和 Queue 方法的的对应关系如下:

Deque 和 Stack 方法的对应关系如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值