四时宝库

程序员的知识宝库

Map 怎么根据value的size排序?(map怎么按照value排序)

#暑期创作大赛#

可以使用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进行排序,主要步骤如下:

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

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

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

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接