Skip to content

Deque

About 476 wordsAbout 2 min

java源码

2025-05-03

Deque也是接口,继承自Queue接口类,在Queue的基础上定义了一些额外的方法,Deque是双端队列的接口,可以在对首或者队尾添加元素。

一、Deque基础信息

接口类定义:

public interface Deque<E> extends Queue<E>{

}

1.1、队列的方法

void addFirst(E e); // 在头部添加元素,没有返回
void addLast(E e); // 在尾部添加元素,没有返回
boolean offerFirst(E e); // 在头部添加元素,返回添加是否成功
boolean offerLast(E e); // 在尾部添加元素,返回添加是否成功
E removeFirst();
E removeLast();
E pollFirst();
E pollLast();
E getFirst();  // 同removeFirst
E getLast(); // 同removeLast
E peekFirst();
E peekLast();

1.2、栈的方法

void push(E e); // 在栈顶添加元素,等同于addFirst
E pop(); // 返回并删除栈顶元素,等同于removeFirst

1.3、集合的方法

boolean remove(Object o); // 删除第一个遇到的元素
boolean contains(Object o); // 判断是否包含对象o
public int size();  // 返回元素个数

二、Deque简单说明

Deque是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedList, ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。

Deque三种用途

  • 普通队列(一端进一端出)
Queue queue = new LinkedList();  // 使用offer, add, poll, remove, peek
Deque deque = new LinkedList();  // 相同的使用offerLast, pollFirst等方法
  • 双端队列(两端都可以进入)
Deque queue = new LinkedList();  // 使用offerFirst, offerLast, pollFirst, pollLast等方法
  • 堆栈
Deque deque = new LinkedList();  // 使用push、pop, peek等方法

操作API

插入头部:addFirst(e), 插入尾部: addLast(e)

删除头部:removeFirst(), 删除尾部:removeLast()

Deque<Integer> st = new ArrayList<>();
st.isEmpty();  // 判断是否为空
st.pop();  // 获取栈顶元素,并出栈栈顶元素
st.push(e);   // 入栈元素
st.peek(); // 获取栈顶元素 不出栈

【Java】Java双端队列Deque使用详解

Changelog

6/3/25, 1:49 AM
View All Changelog
  • d3a6d-Merge branch 'dev1'on

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!