在Java中,可以使用LinkedList实现栈与队列;可以使用PriorityQueue实现优先队列,PriorityQueue实现的优先队列默认最小堆,可以通过传递Comparator对象实现最大堆。下面对各个API进行详细介绍:
一、LinkedList类
构造方法:LinkedList< Integer > stack = new LinkedList< Integer >();
(1)添加元素
- void addFirst(e)
- boolean offerFirst(e)
(2)查询元素(不删除)
- E getFirst():集合为空时抛异常;
- E peekFirst():集合为空时返回null;
(3)删除首尾元素
- E removeFirst():集合为空时抛异常;
- E pollFirst():集合为空时返回null;
(4)删除某个元素
- E remove(int index)
- boolean remove(e)
(5)元素个数
- int size()
二、PriorityQueue类
最小堆:PriorityQueue< Integer > integers = new PriorityQueue< Integer >();
最大堆:通过匿名颞部类对象实现
PriorityQueue<Integer> integers1 = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
(1)入队
- boolean add(E e)
(2)查询队列的头元素(不删除)
- E peek():集合为空时返回null;
(3)出队
- E poll():集合为空时返回null;
(4)删除某个元素
- boolean remove(e)
(5)元素个数
- int size()
三、Java本身的Stack类
1、Stack类的API设计:
- 构造方法:Stack()
- 成员方法:
(1)入栈:push()
(2)出栈:pop()