[英]How to return List of Object using Stream API
My EmployeeDeatils Object has List of other object inside (employeeData).我的 EmployeeDetails Object 里面有其他 object 的列表(employeeData)。 I am trying to fetch that with some mapping with id我正在尝试通过一些带有 id 的映射来获取它
But not sure what I am doing wrong但不确定我做错了什么
private List<EmployeeData> getEmployeeMessage(List<EmployeeDetails> employeeDetailList, Employee employee) {
return employeeDetailList.stream()
.filter(employeeDetail -> employeeDetail.getEmployeeId() == employee.getEmployeeId())
.map(employeeDetail -> employeeDetail.getEmployeeData())
.collect(Collectors.toList);
}
Assuming that your EmployeeDetails
class has List<EmployeeData> getEmployeeData()
field, you can fetch these using:假设您的EmployeeDetails
class 具有List<EmployeeData> getEmployeeData()
字段,您可以使用以下方法获取这些:
List<EmployeeData> getEmployeeMessage(List<EmployeeDetails> employeeDetailList, Employee employee) {
return employeeDetailList.stream()
.filter(employeeDetail -> employeeDetail.getEmployeeId() == employee.getEmployeeId())
.flatMap(employeeDetail -> employeeDetail.getEmployeeData().stream())
.collect(Collectors.toList());
}
As @Naman correctly pointed out, you need to pay attention on flatMap
vs map
operations.正如@Naman 正确指出的那样,您需要注意flatMap
与map
操作。
In this case, a flatMap
is used because you need a mapping operation for each element of your list (returned by getEmployeeData()
).在这种情况下,使用flatMap
是因为您需要对列表的每个元素进行映射操作(由getEmployeeData()
返回)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.