java优先级队列PriorityQueue

	public static void main(String[] args) {
		PriorityQueue<int[]> pq=new PriorityQueue<>(Comparator.comparing(a -> a[0]));构造一个以数组首元素为标准排列的优先级队列
		int a[]= {1,2},b[]= {3,5},c[]= {2,6};
		pq.add(a);
		pq.add(b);
		pq.add(c);
		while(!pq.isEmpty()) {
			System.out.println(pq.poll().clone()[0]);
		}
	}

要注意的是PriorityQueue的内部实现是用堆排实现的,也就是说队首元素一定是按照我的排序方式得到的最小的元素,但是内部是无序的,所有要输出一个有序的必须要调用while循环,不能直接println整个PriorityQueue

猜你喜欢

转载自blog.csdn.net/cobracanary/article/details/88251296