Java 8实战(Java 8 in action)学习总结(三)

Java 8实战(Java 8 in action)学习总结(三)

流总结2

  1. Streams API可以表达复杂的数据处理查询。常用的流操作如下表:
    在这里插入图片描述
  2. 你可以使用filter、distinct、skip和limit对流做筛选和切片。
  3. 你可以使用map和flatMap提取或转换流中的元素。
  4. 你可以使用findFirst和findAny方法查找流中的元素。你可以allMatch、noneMatch和anyMatch方法让流匹配给定的谓词。
  5. 这些方法都利用了短路:找到结果就立即停止运算;没必要处理整个流。
  6. 你可以利用reduce(规约)方法将流中所有的元素迭代合并成一个结果,例如求和或查找最大元素等。
  7. filter和map操作是无状态的,它们并不存储任何状态。reduce等操作要存状态才能计算出一个值。sorted和distinct等操作也要存储状态,因为它们需要把流中的所有元素缓存起来才能返回一个新的流。这种操作称为有状态操作
  8. 流有三种基本的原始类型特化:IntStream、DoubleStream和LongStream。它们的操作也有相应的特化。
  9. 流不仅可以从集合创建,也可以从值、数组、文件以及iterate与generate等特定方法创建。
  10. 无限流是没有固定大小的流。
  11. collect是一个终端操作,它接受的参数是将流中元素累积到汇总结果的各种方式(称为收集器)。
  12. 预定义收集器包括将流元素规约和汇总到一个值,列如计算最小值、最大值或平均值。
  13. 预定义收集器可以用groupingBy对流中元素进行分组,或用partitioningBy进行分区。
  14. 收集器可以高效地复合起来,进行多级分组、分区和规约。
  15. 你可以实现Collector接口定义的方法来开发你自己的收集器。

Java 8实战(Java 8 in action)学习总结(二)
java8 实战(java 8 in Action)PDF下载地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值