for String permissionCode permissionCodes if !permissionCodematchesPERMISSION_CODE_REGEX failMsgaddpermissionCode + 三元组编码格式不符合要求!; failCount++;
您可以使用Java 8中的流(Stream)来实现上述代码,如下所示:
iamPermissionExportPojos = iamPermissionExportPojos.stream()
.filter(e -> permissionCodes.stream().anyMatch(code -> Objects.equals(e.getPermissionCode(), code) && code.matches(PERMISSION_CODE_REGEX)))
.collect(Collectors.toList());
List<String> failedPermissionCodes = permissionCodes.stream()
.filter(code -> iamPermissionExportPojos.stream().noneMatch(e -> Objects.equals(e.getPermissionCode(), code) && code.matches(PERMISSION_CODE_REGEX)))
.collect(Collectors.toList());
failedPermissionCodes.forEach(code -> failMsg.add(code + "三元组编码格式不符合要求!"));
failCount += failedPermissionCodes.size();
上述代码使用流的filter操作过滤出符合要求的iamPermissionExportPojos,并使用collect操作将结果收集为列表。
同时,使用流的filter操作过滤出不符合要求的permissionCodes,并将其收集为列表。然后,使用forEach操作将不符合要求的编码添加到failMsg中,并增加failCount计数
原文地址: https://www.cveoy.top/t/topic/iQe2 著作权归作者所有。请勿转载和采集!