2011-05-13 51 views
0

因此,java中的TreeMap類的形式爲TreeMap<K,V>。顯然K需要是Combarable,但這隻能在運行時檢查一次,如果不是Comparable,則會引發異常。將這個類定義爲TreeMap<K extends Comparable<? super K>, V>會不會更有意義?Java中的TreeMap模板構造

缺少什麼我在這裏?

回答

1

TreeMap的一個實例可以給出一個鍵的比較器,所以它們不必具有自然的總排序。

[編輯]

更具體地,TreeMap一個實例可以通過提供構造與Comparator一個實例,其能夠比較兩個鍵順序的創建。如果您以這種方式創建地圖,比較器將用於所有關鍵比較。在這種情況下,密鑰不必具有固有的可比性。

+0

有道理。謝謝。 – delmet 2011-05-14 00:02:54

0

提供密鑰的比較器可以工作。

我把鑰匙是不能以這種方式Combarable:

TreeMap<K, V> myMap = new TreeMap<K, V>(new Comparator<K>(){ 
    @Override 
    int compare(K o1, K o2) { 
     ...//Define the compare logic 
    } 
}); 

myMap.put(...);