zoukankan      html  css  js  c++  java
  • 如何将HashMap,按照value值排序

    这里要用到一个Comparator的接口,里面只有一个方法,compare(),我们实现这个接口就好,很简单

    private class ValueComparator implements Comparator<Map.Entry<String, Integer>>  
    	    {  
    	        public int compare(Map.Entry<String, Integer> mp1, Map.Entry<String, Integer> mp2)   
    	        {  
    	            return mp2.getValue() - mp1.getValue();  
    	        }  
    	    }  


    这里为啥用mp2-mp1呢,因为我想要的排序结果是从大到小,默认的是从小到大排序。这样调换一下位置就不要再写一个循环,倒叙输出了。

    使用的时候也很简单,调用Collections工具类的sort方法时,传入我们自己写的这个实现类的对象,作为参数就可以了。先根据实际需求,创建一个List。

    Map<String,Integer> map=new HashMap<>();
    		List<Map.Entry<String,Integer>> sort=new ArrayList<>();

    然后直接就可以排序啦。

    sort.addAll(map.entrySet());
    		ValueComparator vc=new ValueComparator();
    		Collections.sort(sort,vc);


    很简单吧。


  • 相关阅读:
    Qt实现模糊搜索
    Qt解析多级xml文件
    insert into
    Git忽略规则(.gitignore配置)不生效原因和解决
    搭建vue开发环境
    表单
    事件处理
    列表渲染
    条件渲染
    class与style绑定
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3249123.html
Copyright © 2011-2022 走看看