1
为什么java中的priorityQueue强制用户在请求比较器时输入初始容量?为什么优先级队列构造函数需要比较器的容量?
PriorityQueue(int initialCapacity, Comparator<? super E> comparator) ?
为什么不能有一个参数的构造被称为
PriorityQueue(Comparator<? super E> comparator) ?
为什么java中的priorityQueue强制用户在请求比较器时输入初始容量?为什么优先级队列构造函数需要比较器的容量?
PriorityQueue(int initialCapacity, Comparator<? super E> comparator) ?
为什么不能有一个参数的构造被称为
PriorityQueue(Comparator<? super E> comparator) ?
我不认为有一个硬和快速的原因。有没有根本理由,为什么你不能做到这一点 - 这将是微不足道的只是这样做是为了补充:
public PriorityQueue(`Comparator<? super E> comparator) {
this(/* reasonable default */, comparator);
}
我的猜测是,这是在设计上的疏忽。正如@Sotirios Delimanolis在评论中指出的,在Java 8中,这个构造函数将被添加。
希望这会有所帮助!
注意Java 8将有这样的构造函数:http://download.java.net/jdk8/docs/api/java/util/PriorityQueue.html –