可以使用lambda表达式通过Stream API来按照a属性分组,并使用Collectors.groupingBy来计算每组的数据个数。

假设有一个包含a属性的对象列表,可以按照a属性分组并计算每组的数据个数,示例如下:

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

public class Main {
    public static void main(String[] args) {
        List<MyObject> list = Arrays.asList(
                new MyObject("A"),
                new MyObject("B"),
                new MyObject("A"),
                new MyObject("C"),
                new MyObject("B")
        );

        Map<String, Long> result = list.stream()
                .collect(Collectors.groupingBy(MyObject::getA, Collectors.counting()));

        System.out.println(result);
    }
}

class MyObject {
    private String a;

    public MyObject(String a) {
        this.a = a;
    }

    public String getA() {
        return a;
    }
}

输出结果为:

{A=2, B=2, C=1}

其中,MyObject是一个简单的包含a属性的对象,list是一个包含多个MyObject对象的列表。通过list.stream()将列表转换为流,然后使用Collectors.groupingBy(MyObject::getA, Collectors.counting())进行分组,并计算每组的数据个数。最后,将结果打印出来。

注意,这里使用了Collectors.counting()来计算每组的数据个数,该方法返回一个Collector实例,用于对元素进行计数

java 使用lambda表达式按照a属性分组并算出每组的数据个数

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

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