java8 - lambda - stream() 处理

通过实例理解

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!
__________________________________________________
永远相信美好的事情即将发生
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值