java - 在java8中迭代嵌套对象

标签 java mongodb collections spring-data java-stream

<分区>

我是 java8 的新手。
我有以下类(class)。

class User {
  List<Vehicle> vehicle;
  private int vehiclecount;

  public List<Vehicle> getVehicle() {
        return vehicle;
  }
}

class Vehicle{
  String vehiclename;
  String vehiclecolor;
}

我可以将其保存在 mongo 集合中:

{ "_id" : ObjectId("59ca1e53a1a79607fcc9200f"), "_class" : "com.test.User", 
   "vechicle" : [ { "vehiclename" : "Car", "vehiclecolor" : "Blue" } ], 
   "count" : 1, "createdDate" : ISODate("2017-09-26T09:30:59.826Z") } 

现在我基于 spring mongo 数据存储库提取了结果。我想迭代上面的mongo集合,这样我就只能得到车辆列表 我尝试了以下:

List<Vehicle> vehicle = result.stream().filter(vehicles->vehicles.getVehicle().stream().collect(Collectors.toList());

请帮助我是 java8 的新手。提前致谢

最佳答案

如果我没理解错的话:

List<Vehicle> vehicles = 
    result.stream()
       .flatMap(user -> user.getVehicle().stream())
       .collect(Collectors.toList());

关于java - 在java8中迭代嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445549/

相关文章:

java - 处理异常后如何恢复代码运行?

C# 泛型下限约束 "where MySubClass : T"(java 的 "super")

java - 为什么 mvn pact :publish throws NoClassDefFoundError kotlin. TypeCastException

mongodb - 更新嵌套数组文档

java - 在不循环的情况下随机获取 HashMap 或 HashSet 中的元素

java - 如何从url(json数据)显示另一个 Activity 中列表中单个项目的详细信息?

java 程序未将所有数据集插入 mongodb 表

javascript - 如何向mongodb发出ajax请求

c# - 比较两个列表的最快方法

java - 从使用 Java 流的员工列表中获取特定加入日期之前和之后的员工