0
点赞
收藏
分享

微信扫一扫

java8 list 转map 统计分组

_铁马冰河_ 2024-04-05 阅读 22

Java8中List转Map统计分组

在Java编程中,经常会遇到需要对一个List进行分组统计的情况,尤其是在处理数据时。Java8中提供了一种简单而优雅的方法来实现List转Map统计分组的功能。本文将介绍如何使用Java8中的Stream API来实现这一功能,并给出代码示例。

List转Map统计分组的实现方法

在Java8中,可以使用Stream API和Collectors工具类来实现List的分组统计功能。下面是一个基本的示例代码:

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

public class GroupingByDemo {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "orange", "apple", "orange");

        // 使用Collectors工具类的groupingBy方法进行分组统计
        Map<String, Long> result = list.stream()
                .collect(Collectors.groupingBy(e -> e, Collectors.counting()));

        // 打印结果
        result.forEach((k, v) -> System.out.println(k + " : " + v));
    }
}

在上面的代码中,我们首先创建了一个包含多个水果名称的List。然后使用Collectors.groupingBy方法对List进行分组统计,最终得到一个包含水果名称及其统计数量的Map。

代码解析

  • list.stream():将List转换为Stream流,以便进行后续的处理。
  • Collectors.groupingBy:使用groupingBy静态方法进行分组操作。第一个参数表示根据哪个条件进行分组,第二个参数表示如何对分组后的数据进行统计。
  • Collectors.counting():统计分组后每个分组的数量。
  • forEach方法:遍历Map输出每个分组的统计结果。

完整示例

下面我们来完整演示一下List转Map统计分组的过程:

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

public class GroupingByDemo {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "orange", "apple", "orange");

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

        result.forEach((k, v) -> System.out.println(k + " : " + v));
    }
}

运行上面的代码,将输出如下结果:

banana : 1
apple : 2
orange : 2

总结

通过上述示例,我们了解了如何使用Java8的Stream API和Collectors工具类来实现List转Map统计分组的功能。这种方法简洁高效,能够快速处理数据,并提高代码的可读性和可维护性。在实际开发中,可以根据具体需求对分组统计的结果进行进一步处理,以满足不同的业务需求。

希望本文对你有所帮助,谢谢阅读!

旅行图

journey
    title List转Map统计分组的旅程
    section 准备
        获取List数据
    section 处理
        使用Stream API进行分组统计
    section 完成
        输出统计结果

状态图

stateDiagram
    [*] --> 准备
    准备 --> 处理: 处理List数据
    处理 --> 完成: 输出统计结果
    完成 --> [*]

通过旅行图和状态图,我们可以更直观地了解List转Map统计分组的过程,使得概念更加清晰。

希望本文对大家有所帮助,谢谢阅读!

举报

相关推荐

0 条评论