Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用比较器将HashMap转换为TreeMap?_Java_Hashmap_Treemap - Fatal编程技术网

Java 如何使用比较器将HashMap转换为TreeMap?

Java 如何使用比较器将HashMap转换为TreeMap?,java,hashmap,treemap,Java,Hashmap,Treemap,在我的代码中,我有以下HashMap,其中键是一个犬舍对象,值是该犬舍中的狗对象列表 当我填充了HashMap之后,我可以将它转换成树映射并传入一个比较器吗 Map<Kennel, List<Dog>> mapOfKennelsAndDogs; //populate the map //convert it to a treemap? 只需使用比较器创建树映射,然后添加所有条目 Comparator<Kennel> ordering = ...; Tre

在我的代码中,我有以下HashMap,其中键是一个犬舍对象,值是该犬舍中的狗对象列表

当我填充了HashMap之后,我可以将它转换成树映射并传入一个比较器吗

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);

嗯,你已经提到了你需要的东西。你为什么要我们试着做下一步?换言之:你的问题听起来像是修辞;你真的需要其他人来回答吗?填充一个然后转换成另一个是没有意义的。只需填充树映射,不要在alltreeMap.putAllhashMap;上使用HashMap;。谢谢,这会使用comparator对hashmap进行重新排序吗?不会,它将使用给定的comparator创建一个新的树映射,用于对条目进行排序。HashMap永远不能由比较器排序;这是两种根本不同的地图实现。