龙空技术网

Map < String , List >怎么根据value的size排序?

烦人的星辰 198

前言:

眼前同学们对“对map集合中key进行排序”大概比较关怀,兄弟们都需要知道一些“对map集合中key进行排序”的相关知识。那么小编也在网络上收集了一些关于“对map集合中key进行排序””的相关资讯,希望兄弟们能喜欢,兄弟们快快来了解一下吧!

#暑期创作大赛#

可以使用Java 8的Stream API来对Map<String, List<String>>中的value按照其size进行排序。

import java.util.ArrayList;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class Main {    public static void main(String[] args) {        // 创建一个包含多个List的Map        Map<String, List<String>> map = new HashMap<>();        map.put("A", new ArrayList<>(List.of("a", "b")));        map.put("B", new ArrayList<>(List.of("c", "d", "e")));        map.put("C", new ArrayList<>(List.of("f")));        // 根据List的size进行排序        List<Map.Entry<String, List<String>>> sortedList = map.entrySet()                .stream()                .sorted(Comparator.comparingInt(entry -> entry.getValue().size()))                .collect(Collectors.toList());        // 输出结果        for (Map.Entry<String, List<String>> entry : sortedList) {            System.out.println(entry.getKey() + ": " + entry.getValue());        }    }}

代码中,首先创建了一个包含多个List的Map,然后使用Java 8的Stream API对Map中的value进行排序,主要步骤如下:

使用entrySet()方法将Map转换为Set集合,并遍历其中的每一项;使用Comparator.comparingInt()方法进行比较器的构造,根据List的size进行排序;使用Collectors.toList()方法将排序后的结果收集到一个新的List中。

最后,输出排序后的结果。

注意,在以上代码中,我们使用了Java 9的List.of()方法来快速创建ArrayList对象。如果你使用的是低于Java 9的版本,则可以手动创建一个空的ArrayList并调用其add()方法来添加元素。

标签: #对map集合中key进行排序