在我的代码中,我有以下HashMap
,其中key
是一个狗窝对象,而value
是该狗窝中Dog对象的列表。如何使用比较器将HashMap转换为TreeMap?
当我填充我的HashMap
时,我可以将它转换为Treemap
并通过比较器吗?
Map<Kennel, List<Dog>> mapOfKennelsAndDogs;
//populate the map
//convert it to a treemap?
在我的代码中,我有以下HashMap
,其中key
是一个狗窝对象,而value
是该狗窝中Dog对象的列表。如何使用比较器将HashMap转换为TreeMap?
当我填充我的HashMap
时,我可以将它转换为Treemap
并通过比较器吗?
Map<Kennel, List<Dog>> mapOfKennelsAndDogs;
//populate the map
//convert it to a treemap?
只需创建与比较树状图,然后添加的所有条目。
Comparator<Kennel> ordering = ...;
TreeMap<Kennel, List<Dog>> treeMap = new TreeMap<>(ordering);
treeMap.putAll(mapOfKennelsAndDogs);
谢谢,这将使用比较器重新排序hashmap吗? – java123999
不,它会创建一个新的TreeMap和给定的比较器来排序条目。一个HashMap永远不能被比较器排序;这是两个根本不同的地图实现。 –
那么,你已经提到了你需要的东西。为什么你需要我们**尝试**来进行下一步?换句话说:你的问题听起来几乎是空谈;你真的需要其他人来回答吗? – GhostCat
填充一个然后转换为另一个没有意义。只需填充TreeMap,并且不要使用HashMap的所有 –
'treeMap.putAll(hashMap);'。 –