最优解:
前提是有一个userList列表起到一种引导作用
for (User user : userList) {
if (user.getRole().equals(RoleTypeEnum.MEMBER.toString()) && user.getStatus().equals(UserStatusEnum.ENTERED.toString()) && user.getType() != null) {
userIdPointMap.computeIfPresent(user.getId(), (userId, dto) -> {
for (String key : dto.getNewNeedPoints().keySet()) {
if (dto.getGraduationPoints() >= dto.getNewNeedPoints().get(key)) {
System.out.println("已获得积分(不含管理)大于 《" + key + "》所需积分《" + dto.getNewNeedPoints().get(key));
dto.setCanGraduate(1);
}
}
return dto;
});
}
}
比较下面为了获得一个map复杂的value需要的操作,而且赋值还是错的
for (Map.Entry<String, DisplayFeishuPointDTO> item : userIdPointMap.entrySet()) {
String role = userIdRoleMap.get(item.getValue().getUserId());
String status = userIdStatusMap.get(item.getValue().getUserId());
String typeHere = userIdTypeMap.get(item.getValue().getUserId());
if (role.equals(RoleTypeEnum.MEMBER.toString()) && status.equals(UserStatusEnum.ENTERED.toString()) && !typeHere.equals("")) {
for (String key : item.getValue().getNewNeedPoints().keySet()) {
if (item.getValue().getGraduationPoints() >= item.getValue().getNewNeedPoints().get(key)){
item.getValue().setCanGraduate(1);
}
}
}
}