使用 Stream 转换 List 为 Map 时,可以使用 Collectors.groupingBy() 方法来实现计算 value 的个数。

以下是一个示例代码:

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> list = List.of('apple', 'banana', 'apple', 'orange', 'banana', 'grape');

        Map<String, Long> countMap = list.stream()
                .collect(Collectors.groupingBy(e -> e, Collectors.counting()));

        System.out.println(countMap);
    }
}

输出结果为:

{orange=1, banana=2, apple=2, grape=1}

在上述代码中,我们首先将 List 转换为 Stream,然后使用 Collectors.groupingBy() 方法对元素进行分组,根据每个元素的值来作为 key,使用 Collectors.counting() 来计算每个元素出现的次数作为 value。最后将结果存储在一个 Map 中。

Java Stream 将 List 转换为 Map 并统计元素出现次数

原文地址: https://www.cveoy.top/t/topic/qhkU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录