Java 8引入了Stream API,其中的groupingBy方法可以将流式数据按照指定的条件进行分组。当我们需要将流式数据分组后存储到自定义对象集合中时,可以使用groupingBy方法结合Collectors.toList()方法来实现。
具体步骤如下:
public class Person {
private String name;
private int age;
// 构造方法、getter和setter方法省略
}
List<Person> personList = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Alice", 35),
new Person("Bob", 40)
);
Stream<Person> personStream = personList.stream();
Map<String, List<Person>> groupedMap = personStream.collect(Collectors.groupingBy(Person::getName));
在上述代码中,Person::getName表示按照Person对象的name属性进行分组。
for (Map.Entry<String, List<Person>> entry : groupedMap.entrySet()) {
String name = entry.getKey();
List<Person> group = entry.getValue();
System.out.println("Group: " + name);
for (Person person : group) {
System.out.println(person.getName() + " - " + person.getAge());
}
System.out.println();
}
上述代码将按照name属性进行分组,并输出每个分组的结果。
这种方式适用于需要将流式数据按照某个属性进行分组,并将结果存储到自定义对象集合中的场景。在实际应用中,可以根据具体需求对自定义对象和分组条件进行调整。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云