【发布时间】:2022-11-14 16:05:48
【问题描述】:
由于我不熟悉 Lambda 表达式,请您以更经典的形式提供“开始”和“结束”之间的代码。提前谢谢了!
Map<String, Integer> map = new HashMap<>();
map.put("word1",1);
map.put("word2",2);
map.put("word3",3);
List<String> temp = new ArrayList<>(map.keySet());
//begin
Collections.sort(temp, (a,b) -> {
if(map.get(a)==map.get(b))
return a.compareTo(b);
return map.get(b)- map.get(a);
});
//end
【问题讨论】:
-
合适的 IDE 可以为您做到这一点,无需在 SO 上发布相关信息。
-
您想以类似方法的方式查看它吗?
-
@azro 是的,我认为这对我有帮助
-
由于您“不熟悉 lambda 表达式”,因此首先尝试自己进行此转换似乎是获得熟悉的极好方法。然后,如果仍然卡住,您可以在问题中展示您的尝试。
-
顺便说一句,由于可能的整数溢出/下溢,不建议使用
map.get(b)- map.get(a),更喜欢Integer.compare(),或者在这种情况下避免自动装箱compareTo()
标签: java lambda expression