zoukankan      html  css  js  c++  java
  • HashMap根据value值排序

    /**
    * hashMap排序
    * @author lizhibiao
    * @date 2018/12/3 11:47
    */
    public class TestHashMapCollections
    {
    public static void main(String[] args)
    {
    Map<String, Integer> map = new HashMap<>();
    map.put("王二", 8);
    map.put("沈吴", 2);
    map.put("小菜", 3);
    map.put("大鸟", 1);

    Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
    for (Map.Entry s : entrySet)
    {
    System.out.println(s.getKey()+"--"+s.getValue());
    }

    System.out.println("============排序后============");

    //////借助list实现hashMap排序//////

    //注意 ArrayList<>() 括号里要传入map.entrySet()
    List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
    Collections.sort(list, new Comparator<Map.Entry<String, Integer>>()
    {
    @Override
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2)
    {
    //按照value值,重小到大排序
    // return o1.getValue() - o2.getValue();

    //按照value值,从大到小排序
    // return o2.getValue() - o1.getValue();

    //按照value值,用compareTo()方法默认是从小到大排序
    return o1.getValue().compareTo(o2.getValue());
    }
    });

    //注意这里遍历的是list,也就是我们将map.Entry放进了list,排序后的集合
    for (Map.Entry s : list)
    {
    System.out.println(s.getKey()+"--"+s.getValue());
    }

    }
    }


    输出结果如下:
    沈吴--2
    大鸟--1
    小菜--3
    王二--8
    ============排序后============
    大鸟--1
    沈吴--2
    小菜--3
    王二--8


    有疑问,扫我二维码添加微信,欢迎骚扰!
    坚持做一件事,一起学习。


  • 相关阅读:
    hdu 1290 献给杭电五十周年校庆的礼物 (DP)
    hdu 3123 GCC (数学)
    hdu 1207 汉诺塔II (DP)
    hdu 1267 下沙的沙子有几粒? (DP)
    hdu 1249 三角形 (DP)
    hdu 2132 An easy problem (递推)
    hdu 2139 Calculate the formula (递推)
    hdu 1284 钱币兑换问题 (DP)
    hdu 4151 The Special Number (DP)
    hdu 1143 Tri Tiling (DP)
  • 原文地址:https://www.cnblogs.com/lizb0907/p/10060349.html
Copyright © 2011-2022 走看看