가능한 중복 :
How to sort a Map<Key, Value> on the values in Java?주문의 HashMap <문자열, 정수>에 따라 정수
친애하는, 내가 값 그래도 저장 한에 해시지도를 가지고 : 가수 (문자열) 및 인기 (정수).
이제 인기도에 따라이 해시 맵을 주문하고 싶습니다.
어떻게 Java로 할 수 있습니까?
가능한 중복 :
How to sort a Map<Key, Value> on the values in Java?주문의 HashMap <문자열, 정수>에 따라 정수
친애하는, 내가 값 그래도 저장 한에 해시지도를 가지고 : 가수 (문자열) 및 인기 (정수).
이제 인기도에 따라이 해시 맵을 주문하고 싶습니다.
어떻게 Java로 할 수 있습니까?
가수를 키로 저장하고 (가수의 인기도) 값으로 저장한다고 가정합니다. 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);
}
});
HashMaps는 (의도적으로) 주문할 수 없습니다. 주문한지도가 필요하면 TreeMap을 사용하십시오.
HashMap 요소의 순서를 제어 할 수 없습니다. 새 TreeMap<Integer,List<String>>
으로 만들고 데이터를 복사하십시오. List<String>
을 사용하면 중복 된 int 값이있는 경우를 처리 할 수 있습니다.
'TreeMap'을 값으로지도를 정렬하는 데 도움이되지 않습니다. – axtavt