Java 的 Stream 中可以使用 collect(Collectors.groupingBy()) 方法进行分组操作。该方法接收一个 Function 作为参数,用于对 Stream 中的元素进行分组。

示例代码:

List<Person> persons = new ArrayList<>();
persons.add(new Person('Tom', 20));
persons.add(new Person('Jerry', 25));
persons.add(new Person('Lucy', 20));

Map<Integer, List<Person>> groupByAge = persons.stream()
        .collect(Collectors.groupingBy(Person::getAge));

System.out.println(groupByAge);

该示例中,我们定义了一个 Person 类,包含 name 和 age 两个属性。接着,我们创建了一个 persons 列表,其中包含三个 Person 对象。我们使用 Stream 的 collect 方法,调用 groupingBy 方法,将元素按照 age 属性进行分组,最终得到一个 Map<Integer, List> 对象,其中 key 为 age,value 为该 age 对应的 Person 对象列表。

输出结果为:

{20=[Person{name='Tom', age=20}, Person{name='Lucy', age=20}], 25=[Person{name='Jerry', age=25}]}

可以看到,我们按照 age 属性成功将元素进行了分组。

Java Stream 分组操作详解 - 使用 Collectors.groupingBy() 方法

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

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