Java Lambada分组 某个属性统计
在Java编程中,使用Lambda表达式能够使代码更加简洁和易读。其中,对数据进行分组并统计某个属性是一个常见的需求。本文将介绍如何使用Java Lambada表达式来实现对数据进行分组,并统计某个属性的功能。
1. 数据准备
首先,我们需要准备一些数据来演示。假设我们有一个Person
类,包含name
和age
两个属性。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
接下来,我们创建一些Person
对象,用于演示。
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 30));
personList.add(new Person("Bob", 25));
personList.add(new Person("Alice", 28));
personList.add(new Person("Bob", 32));
personList.add(new Person("Alice", 35));
2. 分组统计
现在,我们想要按照name
属性对Person
对象进行分组,并统计每个组中的人数。我们可以使用Java Lambada表达式来实现这个功能。
Map<String, Long> countByName = personList.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.counting()));
countByName.forEach((name, count) ->
System.out.println(name + ": " + count));
在上面的代码中,Collectors.groupingBy(Person::getName, Collectors.counting())
表示按照name
属性进行分组,并统计每个组的数量。最后,我们使用forEach
方法打印出每个组的名称和数量。
3. 完整代码示例
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 30));
personList.add(new Person("Bob", 25));
personList.add(new Person("Alice", 28));
personList.add(new Person("Bob", 32));
personList.add(new Person("Alice", 35));
Map<String, Long> countByName = personList.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.counting()));
countByName.forEach((name, count) ->
System.out.println(name + ": " + count));
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
4. 总结
通过以上代码示例,我们学习了如何使用Java Lambada表达式对数据进行分组,并统计某个属性的功能。这种方式使代码更加简洁和易读,提高了代码的可维护性和可读性。在实际开发中,我们可以根据这种方法进行更复杂的数据处理操作,提高编程效率和代码质量。希望本文对您有所帮助,谢谢阅读!
journey
title Java Lambada分组 某个属性统计
section 数据准备
- 创建Person类
- 创建Person对象列表
section 分组统计
- 使用Java Lambada表达式对数据进行分组
- 统计某个属性的数量
section 完整代码示例
- 完整的Java代码示例
section 总结
- 学习了如何使用Java Lambada表达式
通过本文的介绍,希望您对Java Lambada表达式的使用有了更深入的了解。祝您编程愉快!