Java-HashMap按key(value)排序

Java-HashMap按key(value)排序,第1张

先上代码:

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args) throws IOException{
        HashMap<String,Integer> map=new HashMap<>();
        map.put("zhangsan",1);
        map.put("lisu",2);
        map.put("wangwu",3);
        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) {
                return o1.getValue()-o2.getValue();
            }
        });

    }

}

具体步骤:

  • 用list存储视图。
  • 将list传入sort方法并重写比较器
    注意数据类型也是要注明是视图的形式,且视图里面再说明键值的数据类型。

如果这里的Key的类型也是Integer,重写的时候只需要把getValue()换成getKey()就能实现对键排序。

熟练了之后还可以写成Lambda表达式:

        List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet());
        Collections.sort(list, (o1, o2) -> o2.getValue()-o1.getValue());

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/731008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存