Java Stack,Queue,PriorityQueue,deque相关操作

Stack

创建:Stack stack = new Stack<>();

boolean empty():判断栈是否为空
E peek():返回栈顶对象,不移除
E pop():返回栈顶对象,并移除
E push(E item):压入栈顶
int search(Object o):返回对象在栈的位置;search返回的位置是从栈顶开始计数,栈顶为1,而不在栈中的元素返回-1

Queue

创建:Queue queue = new LinkedList<>();

boolean add(E e):向队列中添加元素
E element():返回队列的头,且不移除
E remove():返回队列的头,且移除
boolean offer(E e):向队列中添加元素
E peek():返回队列的头,且不移除
E poll():返回队列的头,且移除

add、element、remove会在操作失败时抛出异常,而offer、peek、poll在操作失败时返回特殊值。

PriorityQueue

peek()//返回队首元素
poll()//返回队首元素,队首元素出队列
add()//添加元素
size()//返回队列元素个数
isEmpty()//判断队列是否为空,为空返回true,不空返回false

默认是小顶堆,可添加Comparator改变成大顶堆

        Queue<Integer> q1 = new PriorityQueue<>();//小顶堆
        //大顶堆
        Queue<Integer> q = new PriorityQueue<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer t1, Integer t2) {
                if (t1 > t2)
                    return -1;
                else
                    return 1;
            }
        });

deque

双端队列。创建:Deque deque = new LinkedList()

原文地址:https://www.cnblogs.com/xym4869/p/12548857.html