Java 8实战(Java 8 in action)学习总结(三)
Java 8实战(Java 8 in action)学习总结(三)
流总结2
- Streams API可以表达复杂的数据处理查询。常用的流操作如下表:
- 你可以使用filter、distinct、skip和limit对流做筛选和切片。
- 你可以使用map和flatMap提取或转换流中的元素。
- 你可以使用findFirst和findAny方法查找流中的元素。你可以allMatch、noneMatch和anyMatch方法让流匹配给定的谓词。
- 这些方法都利用了短路:找到结果就立即停止运算;没必要处理整个流。
- 你可以利用reduce(规约)方法将流中所有的元素迭代合并成一个结果,例如求和或查找最大元素等。
- filter和map操作是无状态的,它们并不存储任何状态。reduce等操作要存状态才能计算出一个值。sorted和distinct等操作也要存储状态,因为它们需要把流中的所有元素缓存起来才能返回一个新的流。这种操作称为有状态操作。
- 流有三种基本的原始类型特化:IntStream、DoubleStream和LongStream。它们的操作也有相应的特化。
- 流不仅可以从集合创建,也可以从值、数组、文件以及iterate与generate等特定方法创建。
- 无限流是没有固定大小的流。
Java 8实战(Java 8 in action)学习总结(二)
java8 实战(java 8 in Action)PDF下载地址