最近我开始使用 java 中的优先级队列,我已经发现自己有些东西我似乎不明白。我已经使用比较器类以我的方式对优先级队列进行排序。
这是我做的一个简单程序:-
package main;
import java.util.Comparator;
import java.util.PriorityQueue;
class PQ implements Comparator<Integer> {
public int compare(Integer o1, Integer o2) { // sort in the descending order
return o2 - o1;
}
}
public class Main {
public static void main(String[] args) {
int[] list = { 1, 5, 6, 9, 10, 3, 5, 2, 13, 15, 17, 19, 25, 1, 0 };
PQ pqs = new PQ();
PriorityQueue<Integer> pq1 = new PriorityQueue<Integer>(10, pqs);
// what does this "10" parameter does?
for (int x : list) {
pq1.offer(x); // put values in to the queue
}
for (int x : list) {
System.out.println(pq1.poll()); // pops out from the queue.
}
}
}
我的问题是优先级队列构造函数中的整数参数“10”是什么意思?(我正在传递它,但我不知道它是做什么的)
我上网查了一下,发现它是用来指定初始容量的,但仍然无法清楚地理解。
谁能解释一下它的作用?
感谢您的时间。