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

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

Tom is 5
Ted is 4
Tim is 2

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

4

2 回答 2

10

你可以尝试这样的事情:

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());
}

参考:

于 2013-09-30T16:10:27.200 回答
0

您可以使用TreeMap并在构造函数中传递 aComparator以使您的条目保持所需的顺序,然后只需遍历您的entrySet.

于 2013-09-30T16:34:26.883 回答