2012-11-19 6 views
0

내가 키 값 쌍의 형태로 컬렉션을 가지고 있고이 컬렉션의 키 자체 값에 기초를 정렬려고 지금키를 기준으로 정렬

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

입니다 첫 번째 키가 표시된 것처럼 키 자체를 기준으로 정렬 할 수있는 방법을 알려주십시오. 그 결과는 내가 찾고있는 것입니다.

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

'를 사용하여 A 트리 맵 <문자열, 정수>는'[여기] 참조 (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() :

이지도에 포함 된 매핑의 세트 뷰를 반환합니다. 집합의 반복자는 항목을 오름차순으로 반환합니다. 사용 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 
관련 문제