2016-06-07 77 views
-3

在我的代碼中,我有以下HashMap,其中key是一個狗窩對象,而value是該狗窩中Dog對象的列表。如何使用比較器將HashMap轉換爲TreeMap?

當我填充我的HashMap時,我可以將它轉換爲Treemap並通過比較器嗎?

Map<Kennel, List<Dog>> mapOfKennelsAndDogs; 

//populate the map 

//convert it to a treemap? 
+2

那麼,你已經提到了你需要的東西。爲什麼你需要我們**嘗試**來進行下一步?換句話說:你的問題聽起來幾乎是空談;你真的需要其他人來回答嗎? – GhostCat

+0

填充一個然後轉換爲另一個沒有意義。只需填充TreeMap,並且不要使用HashMap的所有 –

+0

'treeMap.putAll(hashMap);'。 –

回答

2

只需創建與比較樹狀圖,然後添加的所有條目。

Comparator<Kennel> ordering = ...; 
TreeMap<Kennel, List<Dog>> treeMap = new TreeMap<>(ordering); 
treeMap.putAll(mapOfKennelsAndDogs); 
+0

謝謝,這將使用比較器重新排序hashmap嗎? – java123999

+0

不,它會創建一個新的TreeMap和給定的比較器來排序條目。一個HashMap永遠不能被比較器排序;這是兩個根本不同的地圖實現。 –