java 从HashMap中选择具有最高值的前N个键并转换为列表

wkftcu5l  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(124)

我有一个Map〈Person,Integer〉的Map,我想返回一个值最高的前N个Person的列表,我怎样才能用一种优雅的方式做到这一点呢?
我曾尝试使用TreeMap并选择前N名来列出,但我认为有更好的方法来做到这一点。

vdzxcuhz

vdzxcuhz1#

Map<Person,Integer> map = ....
List<Map.Entry<Person,Integer>> entries = new ArrayList<>(map.entrySet());
Collections.sort( entries, Comparator.comparing(
    Map.Entry::getValue, (v1, v2) -> {
        return v2.compareTo(v1);
    }));
return entries.subList(0, 5);

相关问题