【发布时间】:2014-01-30 00:32:04
【问题描述】:
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 4);
map.put("c", 6);
map.put("b", 2);
期望的输出(HashMap):
c : 6
a : 4
b : 2
我找不到任何关于按值降序的信息。
如何做到这一点? (不喜欢加班)
【问题讨论】:
-
你不能。但是您可以按值对 Entries (在列表或其他有序集合中一次)进行排序:开始,
List entries = new ArrayList<Entry<String,Integer>>(hash.getEntries());然后排序。 -
@RC 这不是同一个问题..
-
(虽然我相信这是一个“重复”,但在另一个问题中接受的答案非常可怕 - 阅读所有回复。我还建议使用 [Array]List vs LinkedHashMap 作为输出集合。)
-
@GameDevGuru:是的,除了一些细微的差别(地图值是字符串而不是整数)。特别阅读this answer。你也可以看看这个问题:stackoverflow.com/questions/109383/…
-
我想要一百万美元。不,赚一千万。