当前位置: 代码迷 >> 综合 >> JAVA-容器源码分析之 Deque(双端队列) 其相关的方法
  详细解决方案

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

热度:49   发布时间:2023-11-26 05:23:16.0

官方解释:

        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//如果队列已满,返回falseboolean offer(E e);//取出队列头部的元素,并从队列中移除//队列为空,抛出NoSuchElementException异常E remove();//取出队列头部的元素,并从队列中移除//队列为空,返回nullE poll();//取出队列头部的元素,但并不移除//如果队列为空,抛出NoSuchElementException异常E element();//取出队列头部的元素,但并不移除//队列为空,返回nullE peek();
}

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

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

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

  相关解决方案