将下面代码进行优化,使用Stream流处理 for (PtmItemVo item : ptmItemVoList) { if ("dwgc".equals(item.getType())) { List<PtmItemVo> zdwgcList = findListByParentId(item.getId()); for (PtmItemVo zdwgcEntity : zdwgcList) { if ("zdwgc".equals(zdwgcEntity.getType())) { list.add(zdwgcEntity); } else if (!list.contains(item)) { list.add(item); } } } }
时间: 2024-02-10 14:13:06 浏览: 62
可以使用 Java 8 中的 Stream API 和 Lambda 表达式来进行优化,代码如下:
```
ptmItemVoList.stream()
.filter(item -> "dwgc".equals(item.getType()))
.flatMap(item -> findListByParentId(item.getId()).stream())
.filter(zdwgcEntity -> "zdwgc".equals(zdwgcEntity.getType()))
.distinct()
.forEach(list::add);
```
这里用到了 Stream 的 filter、flatMap、distinct 和 forEach 方法,分别用于过滤出符合条件的元素、将列表展开为单个元素、去重以及将结果加入到目标列表中。相比于原始的 for 循环,Stream API 的代码更加简洁易懂,也更具有可读性。
阅读全文