hashmap은 먼저value에 따라 큰 것부터 작은 것까지 정렬하고,value가 같을 때 키에 따라 작은 것부터 큰 것까지 정렬합니다

1764 단어
hashmap은value에 따라 큰 것부터 작은 것까지 정렬하고,value가 같을 때 키에 따라 작은 것부터 큰 것까지 정렬합니다.
[2]는 작은 순서에서 큰 순서로 [2] 코드를 바탕으로 o1, o2 위치를 교환하면 된다.
코드에서[1]에서 언급한value가 같을 때 키를 비교하는 방법을 사용한다.
    static Map sortByValue(Map map) {
        List list = new LinkedList(map.entrySet());
        Collections.sort(list, new Comparator() {
             public int compare(Object o1, Object o2) {
                 if (((Comparable) ((Map.Entry) (o2)).getValue())
                          .compareTo(((Map.Entry) (o1)).getValue())!=0) {
                     return ((Comparable) ((Map.Entry) (o2)).getValue())
                             .compareTo(((Map.Entry) (o1)).getValue());
                }else {
                      return ((Comparable) ((Map.Entry) (o1)).getKey())
                              .compareTo(((Map.Entry) (o2)).getKey());
                }

             }
        });

 
[1]key,value 동시 정렬http://stackoverflow.com/a/3074324/1767800
[2]value순으로 정렬http://stackoverflow.com/a/109389/1767800

좋은 웹페이지 즐겨찾기