zoukankan      html  css  js  c++  java
  • 实现Map按key或按value排序

    原理思路:用List实现排序,然后将List中的值遍历存入到LinkedHashMap

    实现方式:

    //这里将map.entrySet()转换成list
    List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(paramMap.entrySet());

    //然后通过比较器来实现排序
    Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {
    //降序排序
    public int compare(Entry<String, Integer> o1,Entry<String, Integer> o2) {
    return o2.getValue().compareTo(o1.getValue());
    }
    });

    Map<String, Integer> resultMap = new LinkedHashMap<String,Integer>();
    for(Entry<String, Integer> map : list){
    resultMap.put(map.getKey(), map.getValue());
    }

    备注:它虽然增加了时间和空间上的开销,但是通过维护一个运行于所有条目的双向链表,LinkedHashMap保证了元素迭代的顺序。该迭代顺序可以是插入顺序或者是访问顺序

  • 相关阅读:
    hdu1546+spfa
    hdu1245+dij,堆优化
    hdu1669+二分多重匹配+二分
    hdu2389+二分匹配(Hopcroft-Karp算法)
    hdu3360+二分匹配(匈牙利算法)
    hdu4253 二分+MST (经典模型)
    本次项目开发的体会
    test

    结构图
  • 原文地址:https://www.cnblogs.com/juanzila/p/10109908.html
Copyright © 2011-2022 走看看