import java.util.*;
import java.util.stream.Collectors;
public class GroupingExample {
public static void main(String[] args) {
// 创建一个包含多个Person对象的列表
List<Person> people = Arrays.asList(
new Person("Alice", 25, "Female"),
new Person("Bob", 30, "Male"),
new Person("Charlie", 35, "Male"),
new Person("Diana", 25, "Female")
);
// 使用Java 8的stream API和Collectors.groupingBy对列表进行分组
// 这里按照性别分组
Map<String, List<Person>> peopleByGender = people.stream()
.collect(Collectors.groupingBy(Person::getGender));
// 输出分组结果
System.out.println("People grouped by gender:");
peopleByGender.forEach((gender, group) -> {
System.out.println(gender + ": " + group);
});
}
}
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 getGender() {
return gender;
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
Person对象的列表。每个Person对象有姓名、年龄和性别三个属性。stream API 和 Collectors.groupingBy 方法,按照Person对象的性别属性对列表进行分组。groupingBy接收一个函数作为参数,这里我们使用了Person::getGender来指定按性别分组。Map,并打印出每个性别的分组结果。这段代码展示了如何使用Java 8的新特性(如流和收集器)来简化集合的操作,特别是分组操作。
上一篇:java抽象方法
下一篇:java redis分布式锁实现
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站