当前位置: 首页 > 知识库问答 >
问题:

如何使用Java流获取对象列表[重复]

林亦
2023-03-14

我无法解决这个问题。

我想用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.
}
List<List<Car>> cars = manufacturers.stream().
   .flatMap(man -> man.getCars().stream())
   .collect(Collectors.toList());
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>)

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

共有1个答案

孟宏才
2023-03-14

这里的问题是,您使用的是flatmap运算符,它接受所有列表,并给出一个列表 。相反,您必须使用map运算符来获得所需的结果。下面是它的样子。

List<List<Car>> result = manufacturers.stream()
    .map(Manufacturer::getCars)
    .collect(Collectors.toList());
 类似资料:
  • 我正在尝试编写一个方法,该方法可以在列表列表中找到对象的索引并利用并行性。这是我的代码。 当我运行以下代码时 输出类似于 换句话说,即使在找到对象之后,搜索仍在继续。不应该是短路操作吗?我错过了什么?此外,在迭代列表或锯齿数组时,利用并行性的最佳方法是什么? 编辑 按照@Sotirios回答中的想法,我得到了以下输出 请注意 即使找到答案也继续搜索。

  • 我有一个gprsEvents列表,其中列表中的每个元素都是一个映射 ,如下所示。我需要: null 我开始考虑使用Java8Stream(groupingBy):gprsents.stream().collectors.groupingBy(Map->map.Get(“CallChargingID”).ToString())) 我现在坚持得到合适的结果,特别是在一个单一的地图和上面提到的字段的列表

  • 我有一个包含两个成员的类和该类的对象列表。现在我想从对象列表中提取成员列表。 例如: 现在我需要从学生列表中检索studentName列表。如何使用java8流实现这一点? 不使用流的解决方案:

  • 我有两个问题: 如何使用spring RestTemplate映射JSON对象列表。 如何映射嵌套的JSON对象。 我正在尝试使用https://bitpay.com/api/rates,方法是按照http://spring.io/guides/gs/consource-rest/的教程学习。