2012-11-19 100 views
0

我有钥匙,值对的形式集合,我试图把它 密钥本身 值集合中的基础上排序是排序键的基础上

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

现在如图所示,首先是关键,请告诉我可以根据关键本身对其进行排序的方式, 这是我所看到的输出结果。

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

使用'TreeMap的<字符串,整数>',见[这里](http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html) – jlordo

+0

类似到http://stackoverflow.com/questions/922528/how-to-sort-map-values-by-key-in-java – peroija

回答

3

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

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

将被排序。从文档entrySet()

返回此映射中包含的映射的Set视图。该集合的 迭代器按照升序键顺序返回条目。

使用entrySet()意味着您可以直接键和相应的值在一个操作,而不是要拿到钥匙,并返回到地图的价值。这是一个小的优化,但值得了解。

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