2011-03-07 13 views

답변

2

가수를 키로 저장하고 (가수의 인기도) 값으로 저장한다고 가정합니다. HashMap은 정렬되지 않고 TreeMap은 키가 아닌 값에 따라 정렬되므로 도움이되지 않습니다.

당신은 인기도 순으로 정렬하여 가수 필요한 경우, 다음지도에있는 모든 가수와 목록을 작성하고 두 가수의 인기를 비교하는 비교하여이 목록을 정렬 :

List<String> singers = new ArrayList<String>(map.keySet()); 
Collections.sort(singers, new Comparator<String>() { 
    @Override 
    public int compare(String s1, String s2) { 
     Integer popularity1 = map.get(s1); 
     Integer popularity2 = map.get(s2); 
     return popularity1.compareTo(popularity2); 
    } 
}); 
2

HashMaps는 (의도적으로) 주문할 수 없습니다. 주문한지도가 필요하면 TreeMap을 사용하십시오.

+3

'TreeMap'을 값으로지도를 정렬하는 데 도움이되지 않습니다. – axtavt

1

HashMap 요소의 순서를 제어 할 수 없습니다. 새 TreeMap<Integer,List<String>>으로 만들고 데이터를 복사하십시오. List<String>을 사용하면 중복 된 int 값이있는 경우를 처리 할 수 ​​있습니다.