/*根据sourceTableId查询数据*/ List<DlLineage> dlLineageList = getLineageListBySourceTableIds(null, null, Arrays.asList(451L)); /*源端数据处理*/ List<DlLineage> dlLineageListCopySource = new ArrayList<>(); Iterator<DlLineage> iterator = dlLineageList.iterator(); while (iterator.hasNext()) { /*获取源端的数据*/ if (iterator.next().getSourceLayer().equals(LayerTypeEnum.SOURCEEND.getCode())) { dlLineageListCopySource.add(iterator.next()); /*删除源端列表数据*/ dlLineageList.remove(iterator.next()); } } 将这段代码改编成dlLineageListCopySource 存放LayerTypeEnum.SOURCEEND.getCode())类型的数据,dlLineageList 只存放除了LayerTypeEnum.SOURCEEND.getCode())类型的数据
时间: 2024-04-14 16:29:07 浏览: 112
为了实现将 `dlLineageListCopySource` 存放 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,`dlLineageList` 只存放除了 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,可以对代码进行如下修改:
```java
List<DlLineage> dlLineageList = getLineageListBySourceTableIds(null, null, Arrays.asList(451L));
List<DlLineage> dlLineageListCopySource = new ArrayList<>();
Iterator<DlLineage> iterator = dlLineageList.iterator();
while (iterator.hasNext()) {
DlLineage dlLineage = iterator.next();
if (dlLineage.getSourceLayer().equals(LayerTypeEnum.SOURCEEND.getCode())) {
dlLineageListCopySource.add(dlLineage);
iterator.remove(); // 使用迭代器的 remove() 方法删除元素
}
}
```
这样修改后,`dlLineageListCopySource` 将只包含 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,而 `dlLineageList` 将只包含除了 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据。注意在遍历时,只调用了一次 `iterator.next()` 方法,以避免重复获取元素。
阅读全文