gpt4 book ai didi

java - 如何使用 Java Streams 获取对象列表的列表

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

我无法解决这个问题。

问题

我想用 Java 流来编写它:

List<Manufacturer> manufacturers = ... // List of Manufacturer-Objects

List<List<Car>> cars = new ArrayList<>();
for (Manufacturer man : manufacturers) {
cars.add(man.getCars()); // Let's just say getCars() returns a List of cars.
}

我认为使用 Java Streams 应该如下所示:

List<List<Car>> cars = manufacturers.stream().
.flatMap(man -> man.getCars().stream())
.collect(Collectors.toList());

错误

但是我的 IDE 显示以下 no instance(s) of type variable(s) R exist so that List<Event> conforms to Stream<? extends R>

和java编译器:

java: incompatible types: cannot infer type-variable(s) R
(argument mismatch; bad return type in lambda expression
java.util.List<elements.Car> cannot be converted to java.util.stream.Stream<? extends R>)

有什么解决办法吗?谢谢!

最佳答案

这里的问题是您正在使用 flatMap运算符获取所有列表并给出 List<Car> 。相反,您必须使用 map操作符来得到想要的结果。这是它的样子。

List<List<Car>> result = manufacturers.stream()
.map(Manufacturer::getCars)
.collect(Collectors.toList());

关于java - 如何使用 Java Streams 获取对象列表的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60932665/

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