假设我有一个包含如下数据的hashmap:
Hello - 2
Help - 2
World - 1我希望能够根据值打印前2个对象,如果2个对象的值相同,则基于键(在本例中为升序)。这是否只能通过自定义的comparator对象来实现,或者是否有更好的方法来实现?
发布于 2020-02-22 03:07:02
具有两个比较键的要求使解决方案变得不那么简单,但是您仍然可以通过组合helper方法返回的比较器来指定排序顺序,从而省去了编写自己的实现的麻烦。
下面显示了一个具有内联比较器结构的流操作,它执行所需的选择。
List<Map.Entry<String, Integer>> result = map.entrySet().stream()
.sorted(Map.Entry.<String, Integer>comparingByValue()
.reversed()
.thenComparing(Map.Entry::getKey))
.limit(2)
.collect(toList());https://stackoverflow.com/questions/60344540
复制相似问题