在Keys的基础上排序

时间:2012-11-19 17:27:24

标签: java dictionary collections

我有一个关键,值对形式的集合,我试图在它的基础上对它进行排序 关键本身  集合中的值是

cd,20
ef,65
ab,28
gh,76

现在如图所示第一个是关键,请告诉我如何根据密钥本身对其进行排序, 那是我看的输出。

ab,28
cd,20
ef,65
gh,76

2 个答案:

答案 0 :(得分:3)

只需从原始地图创建TreeMap即可。 TreeMap根据键的自然顺序排序,因此

for (Map.Entry e : treeMap.entrySet()) {
   // generics elided for clarity

将被排序。来自entrySet()的文档:

  

返回此映射中包含的映射的Set视图。集合   iterator以升序键顺序返回条目。

使用entrySet()表示您可以在一次操作中拉出键和相应的值,而不是必须获取键,然后返回到地图以获取值。这是一个小优化,但值得了解。

答案 1 :(得分:1)

TreeMap<String, Integer> map = new TreeMap<>();
// insert entries:
map.put("ab", 12);
// ...
// insertion order does not matter
for (String key : map.keySet()) {
    System.out.println(key + ", " + map.get(key));
}
// will always print in sorted order