如何获取列表列表与Java流对象

菲利普:

我不能让我的头解决这个问题。

问题

我想与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流应该如下所示:

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>)

该解决方案的任何?谢谢!

拉温德拉Ranwala:

这里的问题是,您使用的是flatMap这需要所有的名单,并给你一个运营商List<Car>相反,你必须使用map运算符来获得所需的结果。下面是它的外观。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章