// 获取去重的评论人
Set<Long> commentators = comments.stream().map(comment -> comment.getCommentator()).collect(Collectors.toSet());
List<Long> userIds = new ArrayList<>();
userIds.addAll(commentators);
// 获取评论人并转换成Map
UserExample userExample = new UserExample();
userExample.createCriteria()
.andIdIn(userIds);
List<User> users = userMapper.selectByExample(userExample);
Map<Long, User> userMap = users.stream().collect(Collectors.toMap(user -> user.getId(), user -> user));
// 转换comment为commentDTO
List<CommentDTO> commentDTOS = comments.stream().map(comment -> {
CommentDTO commentDTO = new CommentDTO();
BeanUtils.copyProperties(comment, commentDTO);
commentDTO.setUser(userMap.get(comment.getCommentator()));
return commentDTO;
}).collect(Collectors.toList());
return commentDTOS;
Stream 获取去重 转换Map 数据转换
于 2020-07-25 08:51:43 首次发布