java - 如何按 Map<String, Integer> 值的降序获取前 10 个键

标签 java

map.put("Tom",5);
map.put("Tim",2);
map.put("Ted",4);

然后我可以像这样广播它:

Tom is 5
Ted is 4
Tim is 2

我该怎么做?我是编码初学者,请不要这么严厉地惩罚我。

最佳答案

你可以尝试这样的事情:

List<Entry<String, Integer>> l = new ArrayList<>(map.entrySet());

Collections.sort(l, new Comparator<Entry<?, Integer>>() {
    @Override
    public int compare(Entry<?, Integer> a, Entry<?, Integer> b) {
        return b.getValue().compareTo(a.getValue());  // reverse order
    }
});

for (int i = 0; i < 10; i++) {
    Entry<String, Integer> e = l.get(i);
    System.out.println(e.getKey() + " is " + e.getValue());
}

引用:

关于java - 如何按 Map<String, Integer> 值的降序获取前 10 个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19098799/

相关文章:

java - Spring Cloud Stream RabbitMQ 多个接收者

java - 复选框编译错误

java - 当之前的一些行在我自己的 Eclipse 编辑器中折叠时获取当前行

java - Eclipse中自动生成串口版UID

java - kotlin 类在 variant.javaCompiler.doLast 上不可用

java - 笔记本崩溃后无法使用 IDE 将 war 部署到 tomcat

java - 读取图像数据时出错 :SqlException: [jcc][10120][11936][4. 11.77] 无效操作 : Lob is closed. ERRORCODE=-4470,SQLSTATE=null

java - 在 Java 中读取属性文件时出现 NullPointerException

java - 可以在java中获取变量的名称和/或类型吗?

java - 找不到wav文件中2个声帧之间的差异的问题