gpt4 book ai didi

java-8 - java8 stream - 过滤映射和聚合

转载 作者:行者123 更新时间:2023-12-01 08:12:02 24 4
gpt4 key购买 nike

假设我有一个房间列表

List<Room> rooms;

每个房间都有一个人员列表。

使用 java8 流 我想迭代房间列表,获取所有人,在每个节点上执行一些方法 (doSomething()) 并获取所有过滤对象的列表。

这是使用 Java 8 的最佳实践吗?

List<Asset> pesonsList= new ArrayList<>();
for (Room room : rooms)
room.getPersonsList().stream()
.filter(person -> person.isTall())
.forEach(person -> {
doSomething(person);
pesonsList.add(person);
});

最佳答案

你最好这样做:

List<Person> persons = 
rooms.stream()
.flatMap(room -> room.getPersonsList().stream())
.filter(Person::isTall)
.peek(this::doSomething)
.collect(Collectors.toList());

关于java-8 - java8 stream - 过滤映射和聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com