因此,java中的TreeMap類的形式爲TreeMap<K,V>
。顯然K需要是Combarable
,但這隻能在運行時檢查一次,如果不是Comparable
,則會引發異常。將這個類定義爲TreeMap<K extends Comparable<? super K>, V>
會不會更有意義?Java中的TreeMap模板構造
缺少什麼我在這裏?
因此,java中的TreeMap類的形式爲TreeMap<K,V>
。顯然K需要是Combarable
,但這隻能在運行時檢查一次,如果不是Comparable
,則會引發異常。將這個類定義爲TreeMap<K extends Comparable<? super K>, V>
會不會更有意義?Java中的TreeMap模板構造
缺少什麼我在這裏?
TreeMap
的一個實例可以給出一個鍵的比較器,所以它們不必具有自然的總排序。
[編輯]
更具體地,TreeMap
一個實例可以通過提供構造與Comparator
一個實例,其能夠比較兩個鍵順序的創建。如果您以這種方式創建地圖,比較器將用於所有關鍵比較。在這種情況下,密鑰不必具有固有的可比性。
提供密鑰的比較器可以工作。
我把鑰匙是不能以這種方式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(...);
有道理。謝謝。 – delmet 2011-05-14 00:02:54