• hashmap先按照value从大到小排序,value相等时按照key从小到大排序


    hashmap先按照value从大到小排序,value相等时按照key从小到大排序。

    [2]是从小到大排序,在[2]代码基础上交换o1,o2位置即可。

    代码中用到[1]中提到的在value相等时再比较key的方法。

        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

  • 相关阅读:
    HDU 2276
    HDU 2254
    HDU 1536 & 1944
    HDU 1538
    HDU 2177
    HDU 2176
    HDU 1209
    HDU 1254
    c++ 11 default delete
    ssh免密登录
  • 原文地址:https://www.cnblogs.com/jiangz/p/4805578.html
Copyright © 2020-2023  润新知