Java8新特性之Stream流

Java8 新特性:Stream流

什么是Stream流?
既然叫它流,它就应该有流的特性,例如水流,单向流动,可以冲刷物体。
我们的Stream流不能储存元素,因为他是流动的,并且不会改变原对象,只会返回一个新的Stream。
Stream的用处:
我理解为对集合数据的操作,计算,通过stream流的方式,并且结合函数式接口,使我们不用再遍历集合,进行一系列麻烦的操作。就可以得到新的数据集合。
Stream流的特点:
执行过程:首先Stream进行实例化操作,然后在Stream流中我们可以进行其他操作,例如过滤,或者映射,但是这些方法不能自动执行,要在我们执行终止操作后才会执行。在Stream流中执行的各个方法,我们称作中间操作链。执行完中间操作链后会产生结果。Stream流也可以理解是单向流动的,一旦执行完终止操作后,不会再被使用。
Stream流的使用
获取Stream流
用一个集合.stream方法,会返回一个顺序流,顺序流:按照顺序操作集合中的数据。
用一个集合.parallelStream方法,会返回一个并行流,并行流也就是向线程一样,有好几个人同时操作集合中数据。
用一个数组也可以获取Stream流,通过Arrays工具类的静态方法,例:有数组arr是Employee类型的。通过:Arrays.stream(arr);便可以得到Employee类型的stream流。
用stream的自身方式:Stream.of(1,2,3);会返回Integer类型的stream流。
创建无限流的方式:(适用于造数据,用处应该不是很多)遍历5个偶数:Stream.iterate(0,t->t+2).limit(5).forEach(System.out::println);从零开始的五个偶数。
生成五个随机数:Stream.generate(Math::random).limit(10).forEach(System.out::println);
中间操作链:
筛选与切片:stream.filter(Lambda表达式).终止语句(.forEach(System.out::println));这是通过lambda表达式的条件进行过滤。截断流:使其元素不超过给定的数量:stream.limit(n)加上终止语句,stream.skip(n)加上终止语句,是跳过前n个元素,stream.distinct加上终止语句是去除重复元素。
映射:stream.map(Lambda).终止 是将流内的数据按照Lambda表达式的规则转换成为其他形式或提取信息。stream.flatMap(Lambda).终止适用于显示集合中有集合的集合。是将集合中的每个元素转换成流,然后把流拼到一起形成新的流。
排序:stream.sorted().终止是自然排序,stream.sorted(Lambda).终止是定制排序。
终止语句:
匹配与查找:allMatch(Predicate p)是检查所有元素是否匹配条件。anyMatch(Predicate p)检查是否有最少一个元素匹配条件。noneMatch是否没有匹配的元素。findFirst返回第一个元素,findAny返回当前流中的任意元素。count返回流中元素的总个数。max(Comparator c) 返回流中最大值,min则相反,forEach(Consumer c)内部迭代。
归约
reduce()可以将流中元素反复结合起来,得到一个值,例如求和等。
收集
collect(),将流转换成其他形式,比如list,map,接收Collector接口的实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更这些源码资源,以适应各平台技术的最发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值