2013-10-06 85 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中,這個構造函數將被添加。

希望這會有所幫助!