优先队列
PriorityQueue<int[]> queue = new PriorityQueue(new Comparator<int[]>(){
public int compare(int[] p1, int[] p2){
return p1[0]!=p2[0] ? p2[0]-p1[0] : p2[1]-p1[1]; //降序写法o2-o1, 小于时不改变顺序
}
});
comparator
当方法的返回值大于0的时候就将数组的前一个数和后一个数做交换。以升序为例来讲解,升序的话compare方法就 return o1 - o2(o1<o2时不改变顺序),降序是 return o2-o1(o2<01时不改变顺序)
优先队列可以用来建立大顶堆或者小顶堆
TreeMap
底层由红黑树组成,左边子节点小于右边子节点,按key排序