我有一个哈希图,如下所示:

    HashMap<String, Integer> hm = new HashMap<String, Integer>;
    hm.put("a", 1);
    hm.put("b", 12);
    hm.put("c", 53);
    hm.put("d", 2);
    hm.put("e", 17);
    hm.put("f", 8);
    hm.put("g", 8);

如何获得具有3个最高值的键?因此它将返回:
    "c", "e", "b"

谢谢。

最佳答案

我的解决方案,按值排序并获得前3名并返回键列表。

List<String> keys = hm.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByValue().reversed()).limit(3).map(Map.Entry::getKey).collect(Collectors.toList());


希望能帮助到你

关于java - 如何在HashMap中获得3个最高值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62077736/

10-13 04:28