pri*_*pri 5 java java-8 java-stream
我无法将以下代码段转换为 Java 8 流格式。
List<String> titles = Arrays.asList("First Name", "Last Name");
for (FirstClass first : firstClassList) {
for (SecondClass second : first.getSecondClassList()) {
for (ThirdClass third : second.getThirdClassList()) {
if(!titles.contains(third.getField())) {
second.getThirdClassList().remove(third);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在将第三级嵌套列表对象与字段的输入列表进行比较。如果字段不匹配,那么我将从原始列表中删除它们。如何使用 Java 8 语法实现这一点。
编辑:我希望返回 FirstClass 列表。
我认为在这种情况下流不会给你带来任何好处。您所做的就是迭代嵌套列表,或者使用增强的 for 循环,或者forEach更简单。
改进可以来自使用removeIf修改列表,并且可能来自将拒绝逻辑移出循环:
Predicate<ThirdClass> reject = third -> !titles.contains(third.getField());
firstClassList.forEeach(first ->
first.getSecondClassList().forEach(second ->
second.getThirdClassList().removeIf(reject)
)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |