专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

HashMap排序方法及lambda表达式与Comparator匿名内部类

HashMap排序方法可借助ArrayList存储Map中

每一对(KEY-VALUE)即(Map.Entry<Class,Class> )

再借助Collections.sort()方法制定自己的排序规则。可以借助key排序亦可以借助value排序。

这边可以用到匿名内部类Comparator或lambda表达式。

Comparator匿名内部类方法:

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;class Solution {    public static void main(String[] args) {        Map<Integer,Integer> map = new HashMap<>();        map.put(1,6);        map.put(2,8);        map.put(3,2);        List<Map.Entry<Integer,Integer>> list = new ArrayList<>(map.entrySet());                Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>() {            @Override            //返回值为负数为升序,正数为降序。            public int compare(Map.Entry<Integer,Integer> a, Map.Entry<Integer,Integer> b){                return a.getValue() - b.getValue();            }        });    }    }

lambda表达式是对Camparator类的精简:

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;class Solution {    public static void main(String[] args) {        Map<Integer,Integer> map = new HashMap<>();        map.put(1,6);        map.put(2,8);        map.put(3,2);        List<Map.Entry<Integer,Integer>> list = new ArrayList<>(map.entrySet());                Collections.sort(list,(a,b) -> a.getValue() - b.getValue());    }    }

代码也精简了不少。规则一样是前面的数减后面的数是负数为升序,正数为降序。

文章永久链接:https://tech.souyunku.com/45767

未经允许不得转载:搜云库技术团队 » HashMap排序方法及lambda表达式与Comparator匿名内部类

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们