如何在Java8中使用来自内部映射和外部映射的值对嵌套哈希映射进行排序?
在我的代码中如何在Java8中使用来自内部映射和外部映射的值对嵌套哈希映射进行排序?,java,sorting,java-8,hashmap,comparator,Java,Sorting,Java 8,Hashmap,Comparator,在我的代码中 Map<Map<String,Date>,Integer> businessCountMap = new HashMap<>(); 我有一张上面这样的地图。我需要按日期和整数对条目进行降序排序,然后像这样返回 请帮帮我。您不能对HashMap进行排序。使用分类图,如树形图和比较器。将字符串、日期表示为对,然后为其定义一个比较方法,其余的请解释如何配对?我不明白。你用整个地图作为另一个地图的键,但这个键总是有一个条目?那么,为什么不将map键设置
Map<Map<String,Date>,Integer> businessCountMap = new HashMap<>();
我有一张上面这样的地图。我需要按日期和整数对条目进行降序排序,然后像这样返回
请帮帮我。您不能对HashMap进行排序。使用分类图,如树形图和比较器。将
字符串、日期
表示为对
,然后为其定义一个比较
方法,其余的请解释如何配对?我不明白。你用整个地图作为另一个地图的键,但这个键总是有一个条目?那么,为什么不将map键设置为map.Entry或定义您自己的类(上面Naman建议的):类与字符串字段和日期字段配对。另外,您应该更喜欢java.time.LocalDate,而不是遗留的和有问题的java.util.Date。无论如何,在您的问题示例中,您不能有这种类型的数据。您有一个重复的密钥{59087=1/31/2021},并且地图不能保存重复的密钥。
Eg: {{59087=2/7/2021}=5,{59087=1/31/2021}=6,{59087=1/31/2021}=8,{63771=2/7/2021}=6}
{{63771=2/7/2021}=6,{59087=2/7/2021}=5,{59087=1/31/2021}=8,{59087=1/31/2021}=6}