我有一个Map〈Person,Integer〉的Map,我想返回一个值最高的前N个Person的列表,我怎样才能用一种优雅的方式做到这一点呢?我曾尝试使用TreeMap并选择前N名来列出,但我认为有更好的方法来做到这一点。
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);
1条答案
按热度按时间vdzxcuhz1#