List<String> ids = new ArrayList<>(); List<String> crewIdOld = technicalGroup.getCrewId(); List<String> teamLeaderIdOld = technicalGroup.getTeamLeaderId(); if (crewIdOld != null && crewIdOld.size() > 0) { crewIdOld.stream().forEach(crewIdOldOne -> { if (!crewId.contains(crewIdOldOne)) { ids.add(crewIdOldOne); } }); } if (teamLeaderIdOld != null && teamLeaderIdOld.size() > 0) { teamLeaderIdOld.stream().forEach(teamLeaderIdOldOne -> { if (!teamLeaderId.contains(teamLeaderIdOldOne)) { ids.add(teamLeaderIdOldOne); } }); }解释一下这段代码
时间: 2024-02-14 10:19:06 浏览: 62
5.1 协同与流转的基本概念与应用迁移的实现.pptx
这段代码主要是用来比较两个列表 `crewId` 和 `teamLeaderId` 是否有不同的元素,并将不同的元素添加到 `ids` 列表中。具体流程如下:
1. 首先,将 `technicalGroup` 对象中的 `crewId` 和 `teamLeaderId` 列表分别赋值给 `crewIdOld` 和 `teamLeaderIdOld` 变量。
2. 然后,使用 `if` 语句分别判断 `crewIdOld` 和 `teamLeaderIdOld` 是否为空且是否有元素。
3. 如果 `crewIdOld` 不为空且有元素,那么使用 Stream 的 `forEach` 方法对其中的每个元素进行遍历,并将其赋值给 `crewIdOldOne` 变量。
4. 在遍历过程中,使用 `if` 语句判断当前遍历到的元素是否不在 `crewId` 列表中。
5. 如果当前遍历到的元素不在 `crewId` 列表中,那么将其添加到 `ids` 列表中。
6. 如果 `teamLeaderIdOld` 不为空且有元素,那么使用 Stream 的 `forEach` 方法对其中的每个元素进行遍历,并将其赋值给 `teamLeaderIdOldOne` 变量。
7. 在遍历过程中,使用 `if` 语句判断当前遍历到的元素是否不在 `teamLeaderId` 列表中。
8. 如果当前遍历到的元素不在 `teamLeaderId` 列表中,那么将其添加到 `ids` 列表中。
9. 最后,返回 `ids` 列表,其中包含了 `crewIdOld` 和 `teamLeaderIdOld` 列表中与 `crewId` 和 `teamLeaderId` 列表不同的元素。
阅读全文