Java8新特性JDK8之流Stream实战

Java8新特性JDK8之流Stream实战


什么是Stream?

  • Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流”的元素队列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水线操作
  • 元素是特定类型的对象,所以元素集合看作一种流, 流在管道中传输, 且可以在管道的节点上进行处理, 比如 排序,聚合,过滤等操作

image-20190922222427247.png

操作详情

  • 数据元素便是原始集合,如List、Set、Map等
  • 生成流,可以是串行流stream() 或者并行流 parallelStream()
  • 中间操作,可以是 排序,聚合,过滤,转换等
  • 终端操作,很多流操作本身就会返回一个流,所以多个操作可以直接连接起来,最后统一进行收集

快速上手

为现有List集合中每个元素前添加“在小滴课堂学习”(后面章节详细讲解)

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("springboot教程","微服务教程","并发编程","压力测试","架构课程");

        List<String> resultList =  list.stream().map(obj->"在小滴课堂学:"+obj).collect(Collectors.toList());

        System.out.println(resultList);
    }
}

流式编程的优点

  • 无存储**。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。**
  • 为函数式编程而生**。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。**
  • 惰式执行**。stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。**
  • 可消费性**。stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。**

原文:

点此跳转原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值