• 实现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保证了元素迭代的顺序。该迭代顺序可以是插入顺序或者是访问顺序

  • 相关阅读:
    进阶算子
    Scala中sortBy和Spark中sortBy区别
    简单算子演示
    map和FlatMap之间区别?
    RDD
    Spark高可用
    Django Rest Framework
    Scrapy
    asyncio
    BeautifulSoup
  • 原文地址:https://www.cnblogs.com/juanzila/p/10109908.html
Copyright © 2020-2023  润新知