Java8特性Stream中map与forEach的区别

//Map接口的定义
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
//forEach接口的定义
void forEach(Consumer<? super T> action);

通过接口定义可以看出,两者最明显的区别就是map有返回值,forEach没有返回值

所以在具体调用时,map调用时可以return一个对象到外部,如下:

        List<String> list= Arrays.asList("1","2","3");

        Optional.ofNullable(list).get().stream().map(info->{
            if (Objects.nonNull(info)){
                return info;
            }else{
                return "空";
            }
        }).forEach(info->{
            System.out.println(info);
        });

发表评论

电子邮件地址不会被公开。 必填项已用*标注