通过实例理解
1) .stream() —转换为流;
2) .map() —遍历;
3) comment -> comment.getCommentator() —comments中的一个为comment,我们需要得到comment的创建者comment.getCommentator();
4) .collect() —转换集合类型;
5) Collectors.toSet() —用Collectors类的toSet()方法转换为set集合类型;
// 根据问题id获取所有评论
List<Comment> comments = commentMapper.listByQuestionId(id);
// 流处理获取问题创建者
Set<Integer> commentators = comments.stream().map(comment -> comment.getCommentator())
.collect(Collectors.toSet());
1) user -> user.getId() —map的 key;
2) user -> user —map的 value;
//获取评论人并转换为Map
List<User> users = userMapper.listByIds(userIds);
Map<Integer, User> userMap = users.stream().collect(Collectors.toMap(user -> user.getId(), user -> user));
1) 传入comment,返回一个 commentDTO
//转换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());
1)stream 拼接 —先把question中的tag通过"逗号"分隔开,然后用“竖杠”拼接成字符串;
2)Arrays 把数组转换成集合
//StringUtils是 lang 包下的类。
String[] tags = StringUtils.split(question.getTag(), ",");
String regexpTag = Arrays.stream(tags).collect(Collectors.joining("|"));
1).filter – 过滤,内部传入过滤条件。如下返回categoryEntity的父ID为0 的数据
2).collect() —转换集合类型;
3) Collectors.toList() —用Collectors类的toList()方法转换为list集合类型;
//1,查出所有分类
List<CategoryEntity> entities = baseMapper.selectList(null);
//查出所有一级分类
List<CategoryEntity> level1Menus = entities.stream().filter((categoryEntity) -> {
return categoryEntity.getParentCid() == 0;
}).collect(Collectors.toList());
如若有不正确的地方,还望指出,thank you!
__________________________________________________
永远相信美好的事情即将发生