2013-10-06 54 views
1

为什么java中的priorityQueue强制用户在请求比较器时输入初始容量?为什么优先级队列构造函数需要比较器的容量?

PriorityQueue(int initialCapacity, Comparator<? super E> comparator) ? 

为什么不能有一个参数的构造被称为

PriorityQueue(Comparator<? super E> comparator) ? 
+1

注意Java 8将有这样的构造函数:http://download.java.net/jdk8/docs/api/java/util/PriorityQueue.html –

回答

0

我不认为有一个硬和快速的原因。有没有根本理由,为什么你不能做到这一点 - 这将是微不足道的只是这样做是为了补充:

public PriorityQueue(`Comparator<? super E> comparator) { 
    this(/* reasonable default */, comparator); 
} 

我的猜测是,这是在设计上的疏忽。正如@Sotirios Delimanolis在评论中指出的,在Java 8中,这个构造函数将被添加。

希望这会有所帮助!