优化代码 private List<SimulationTableDto> filteredSimObjList(List<SimulationTableDto> simRootList, List<SimulationTableDto> simObjList) { if (CollectionUtils.isEmpty(simObjList) || CollectionUtils.isEmpty(simRootList)) { return Lists.newArrayList(); } List<SimulationTableDto> filteredSimObjList = Lists.newArrayList(); for (SimulationTableDto simObjColumn : simObjList) { int checkInt = 0; String s1 = simObjColumn.getTableName() + PqlConst.VARIANT_DELIMETER + simObjColumn.getColumn().getTitle(); for (SimulationTableDto simRootColumn : simRootList) { String s2 = simRootColumn.getTableName() + PqlConst.VARIANT_DELIMETER + simRootColumn.getColumn().getTitle(); if (s1.equals(s2)) { checkInt = checkInt + 1; break; } } if (checkInt == 0) { filteredSimObjList.add(simObjColumn); } } return filteredSimObjList; }
时间: 2024-02-05 15:04:24 浏览: 137
list集合泛型等常用
可以通过使用 Java 8 的 Stream API 来优化这段代码,使其更加简洁和易读。重写后的代码如下所示:
```
private List<SimulationTableDto> filteredSimObjList(List<SimulationTableDto> simRootList, List<SimulationTableDto> simObjList) {
if (CollectionUtils.isEmpty(simObjList) || CollectionUtils.isEmpty(simRootList)) {
return Lists.newArrayList();
}
return simObjList.stream()
.filter(simObjColumn -> simRootList.stream()
.noneMatch(simRootColumn -> (simObjColumn.getTableName() + PqlConst.VARIANT_DELIMETER + simObjColumn.getColumn().getTitle())
.equals(simRootColumn.getTableName() + PqlConst.VARIANT_DELIMETER + simRootColumn.getColumn().getTitle())))
.collect(Collectors.toList());
}
```
这段代码利用了 Java 8 的 Stream API,使用了 filter 和 noneMatch 方法来过滤出符合条件的元素。其中,filter 方法用于过滤 simObjList 中的元素,noneMatch 方法用于判断 simRootList 中是否存在与过滤条件相匹配的元素。最终,使用 collect 方法将过滤后的结果收集到一个列表中并返回。
阅读全文