java 使用lambda表达式按照a属性分组并算出每组的数据个数
可以使用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实例,用于对元素进行计数
原文地址: http://www.cveoy.top/t/topic/isu3 著作权归作者所有。请勿转载和采集!