2016-06-07 47 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永远不能被比较器排序;这是两个根本不同的地图实现。 –