通过源码可以发现Deque可以实现双端队列,队列,栈

package java.util;
//双端队列接口,双端队列也要理解成有方向的
public interface Deque<E> extends Queue<E> {
    //双向队列的方法 *****************************************************************//
    //队列方法:add(队列满抛异常),offer,remove(队列空抛异常),poll,element(队列空抛异常),peek
    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();//获取第一个对象但不移除,队列空抛异常
    E getLast();//获取最后一个对象但不移除,队列空抛异常
    E peekFirst();
    E peekLast();
    boolean removeFirstOccurrence(Object o);//从前往后删除deque中第一个匹配对象
    boolean removeLastOccurrence(Object o); //从后往前删除deque中第一个匹配对象
    //单向队列的方法 *****************************************************************//
    boolean add(E e);
    boolean offer(E e);
    E remove();
    E poll();
    E element();
    E peek();
    // 栈的方法 **********************************************************************//
    void push(E e);
    E pop();
    // *** Collection methods *************************************************************//
    boolean remove(Object o);
    boolean contains(Object o);
    public int size();
    Iterator<E> iterator();
    Iterator<E> descendingIterator();
}