JAVA 实现大批量数据的分组统计
时间: 2023-09-13 16:05:46 浏览: 94
Java8进行多个字段分组统计的实例代码
可以使用Java的Stream API来实现大批量数据的分组统计。具体步骤如下:
1. 将数据转换为Stream对象。
2. 使用Collectors.groupingBy()方法对数据进行分组,该方法接受一个Function类型的参数,用于指定按照哪个属性进行分组。
3. 使用Collectors.summingInt()方法对每组数据进行统计,该方法接受一个ToIntFunction类型的参数,用于指定对哪个属性进行求和。
4. 最后使用Collectors.toMap()方法将分组统计的结果转换为Map对象。
示例代码如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public class GroupingExample {
public static void main(String[] args) {
List<Person> persons = Arrays.asList(
new Person("Tom", 20, "Male"),
new Person("Jack", 30, "Male"),
new Person("Alice", 25, "Female"),
new Person("Bob", 35, "Male"),
new Person("Mary", 28, "Female")
);
// 按照性别分组,统计年龄总和
Map<String, Integer> ageSumByGender = persons.stream()
.collect(Collectors.groupingBy(Person::getGender, Collectors.summingInt(Person::getAge)));
System.out.println(ageSumByGender);
}
}
class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
```
输出结果为:
```
{Male=85, Female=53}
```
表示男性的年龄总和为85,女性的年龄总和为53。
阅读全文