java如何按内部键降序排序嵌套映射,然后按内部值升序排序?
例如,我有一个嵌套映射Map<String, Map<String, Integer>
(“三星”(“注”,30))
(“三星”,“银河”,20))
(“苹果”(“Iphone”,40))
我需要按内键按字母降序对地图进行排序(在本例中为模型名称)
如果两个名称相等,那么我必须按升序对内部值进行排序(在本例中为价格)
到目前为止,我的分类如下:
map.entrySet().stream.forEach(entry -> entry.getValue().entrySet().stream() .sorted(Comparator.comparing(Map.Entry::getKey, Comparator.reverseOrder()))
我知道我必须添加.thenComparing()
,但我不知道下一步如何进行
# 1 楼答案
您可以按如下方式编写CustomComparator:
此压缩程序将首先按照品牌名称的降序对数据进行排序,如果两个品牌名称相同,则将按照价格的升序对数据进行排序
您必须在树状图中添加数据,如下所示
Set data = new TreeSet(new CustomComparator()); //Add your data here in data object