Java 8过滤列表中的列表
我有一个对象列表,其中包含一个对象列表,我想获取容器中的一个项目。这是否可以用lambda实现,或者只需要嵌套循环 以下是我用于查找项目的当前方法:Java 8过滤列表中的列表,java,lambda,Java,Lambda,我有一个对象列表,其中包含一个对象列表,我想获取容器中的一个项目。这是否可以用lambda实现,或者只需要嵌套循环 以下是我用于查找项目的当前方法: for (Container c : containers) { for (Item i : c.getItems() { if (i.getKey().equals(key)) return i; } } 嵌套for循环运行良好。如果要使用流进行此操作,可以执行以下操作: containers.stream()
for (Container c : containers) {
for (Item i : c.getItems() {
if (i.getKey().equals(key)) return i;
}
}
嵌套for循环运行良好。如果要使用流进行此操作,可以执行以下操作:
containers.stream()
.flatMap(c -> c.getItems().stream())
.filter(i -> i.getKey().equals(key))
.findFirst();
如果找到了
项,则返回一个包含该项的可选,否则返回一个空的可选。类似于containers.stream().flatMap(c->c.getItems().stream()).filter(i->i.getKey().equals(key)).findFirst().orElse(null)代码>@Jean FrançoisSavard我没有看到你的评论。