2011-11-14 4 views
0

가능한 중복 :
How to sort a Map<Key, Value> on the values in Java?값으로 해시 맵을 정렬하는 방법은 무엇입니까?

내가 그 안에 저장된 값에 따라 내 해시 맵을 정렬 할 필요가

. hashmap에는 phone.also에 저장된 연락처 이름이 포함되어 있습니다. 값을 정렬하자마자 키가 자동 정렬되도록해야합니다. 키와 값이 함께 묶여 있으므로 값의 변경 사항이 키에 반영되어야한다고 말할 수 있습니다.

HashMap<Integer,String> map = new HashMap<Integer,String>(); 
    map.put(1,froyo); 
    map.put(2,abby); 
    map.put(3,denver); 
    map.put(4,frost); 
    map.put(5,daisy); 

필요한 출력 : 또한

2,abby; 
5,daisy; 
3,denver; 
4,frost; 
1,froyo; 
+0

그리고 오늘 아침에 게시 된 질문의 거의 정확한 중복. 이 예에서 오류를 수정하지 않고 재 게시하기 위해 -1. –

+0

당신이 대답을 제공 할 수 있다면 좋을 것입니다. 그리고 예제의 어떤 오류에 대해서 이야기하고있는가에 따라 말이죠. –

+0

''일 때는'("1", froyo)'등이 있습니다. –

답변

0
private static class MyMapComparator implements Comparator<Map.Entry<Integer, String>> 
{ 
    @Override 
    public int compare(Map.Entry<Integer, String> a, Map.Entry<Integer, String> b) { 
     return a.getValue().compareTo(b.getValue()); 
    } 
} 
... 

List<Map.Entry<Integer, String>> entries = new ArrayList<Map.Entry<Integer, String>>(map.entries()); 
Collections.sort(entries, new MyMapComparator()); 
관련 문제