[英]Iterate java nested list using Java8 Stream
我有一个这样的 EmployObject 列表 Java
List<Employee> emp = {emp1, emp2, emp3, emp4 ,...}
Where the Employee class looks like this
Public Class Employee {
String EmpId;
EmpInfo empInfo;
}
public class EmpInfo {
String salary;
String address;
List<Reviews> reviews;
}
public class Reviews {
int ratings;
boolean isGood;
}
我想使用 Java8 流来遍历列表 (List emp) 并过滤具有多个评级 (List lenghth > 1) 且评级良好 (isGood == true) 的 EmpId。 新列表看起来像
列出 empRating = {empRating1, empRating2, ...}
public class EmpRating {
String empId;
int ratings;
}
我尝试了不同的方法,但无法找到优化的解决方案。 需要帮助。
只是一个例子:
isGood
employeeList.stream()
.filter(emp -> emp.getEmpInfo().getReviews().size() > 1
&& emp.getEmpInfo().getReviews().stream().anyMatch(Reviews::isGood))
.map(emp -> new EmpRating(
emp.getEmpId(),
emp.getEmpInfo().getReviews().stream().mapToInt(Reviews::getRatings).sum()
))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.