Java数据结构比Go多,很多数据结构(如优先级队列)Go都需要自己手写。所以使用一段时间Go后,刷题又转为Java了。
1. 数据结构
- 双端队列Deque
- 实现类有ArrayDeque和LinkedList
- 接口:peekFirst,pollFirst,addFirst,peekLast,pollLast,addLast,栈接口:peek(=peekFirst),poll(=pollFirst)
- 优先级队列PriorityQueue
- 自定义排序:用Comparator的compare(a,b),a-b是默认的升序,b-a是降序。如大顶堆,就用b-a
// 大顶堆
PriorityQueue<Integer> queue=new PriorityQueue<>(new Comparator<Integer>(){
public int compare(int a,int b){
return b-a;
}
});