我有一个散列图,用于存储文本中字符出现的次数。我正在尝试打印出前三名,但打印不正确。

int max = 1000000000;
for (int i = 1; i <= 3; i++) {
    for (Character key : list.keySet()) {
        if (list.get(key) < max) {
            max = list.get(key);
            System.out.println(i + ": " + key + " " + list.get(key));
            break;
        }
    }
}

最佳答案

您可以将程序修改为以下形式:

for (int i = 1; i <= 3; i++) {
    int max = -1;
    Character maxKey = 'a';
    for (Character key : list.keySet()) {
        if (list.get(key) > max) {
            max = list.get(key);
            maxKey = key;
        }
    }
    System.out.println(i + ": " + maxKey + " " + max );
    list.remove(maxKey);
}

关于java - 获取Hashmap前3个键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28173662/

10-11 22:37
查看更多