Java8-Stream中的map操作

Java8开始提供的stream操作非常简单,减少了代码量,写起来也更直观。
在写代码过程中看到了一个map操作,可以将一个list变成了map,之后还能通过流操作再转为list。
以下边代码为例,通过课程id的list来获取每个课程

public List<Course> getRecommendCourses() {
	//通过某方法获取课程id的list
	List<Long> courseIds = ***(***);
	return courseIds.stream()
                .map(aLong -> courseManagerService.getCourseFromCMP(aLong,platform))
                .filter(p->p!=null)
                .peek(p -> p.setStudyNum(***))
                .collect(Collectors.toList());
}

上边的map操作如果不写成lamda表达式的形式则是如下写法,看起来更直观:

courseIds.stream()
                .map(new Function<Long, Course>() {
                    @Override
                    public Course apply(Long aLong) {
                        return courseManagerService.getCourseFromCMP(aLong,platform);
                    }
                }).collect(Collectors.toList());

里边需要使用Function接口并且重写apply方法。
.filter是过滤器,满足条件的才会被留下
peek是进行遍历的,类似于foreach

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值