java8 Stream 笔记
stream的定义:对一个源中的一系列元素进行聚合操作。
一系列元素:stream对一组有特定类型的元素提供了一个接口。但是stream并不真正存储元素,元素根据需求被计算出来。
源:stream可以处理任何一种数据提供源,比如集合、数组、IO资源。
聚合操作:stream支持类似sql一样的操作,常规的操作类似函数试语言,比如filter,map,reduce,find,match,sorted等。
stream还有两个特性使它和collection不同:
管道:许多stream操作会返回一个stream对象本身。这就允许所有的操作可以链接起来形成一个更大的管道。这就可以进行特定优化比如懒加载和短回路
内部迭代:和集合的显示迭代(外部迭代)相比,stream操作不需要我们手动进行迭代。
stream的操作包括如下三个东西:
一个需要进行数据查询的数据源;
一连串组成管道的中间操作;
一个执行管道并产生结果的终结操作。
stream提供了操作分为如下四类:
过滤:
filter (Predicate): 使用一个谓词java.util.function.Predicate作为参数返回一个满足谓词条件的stream
distinct: 返回一个没有重复元素的stream(根据equals的实现)
limit(n): 返回一个不超过给定长度的stream
skip(n):返回一个忽略前n个的stream
查找和匹配:
一个通常的数据处理模式是判断一些元素是否满足给定的属性,可以使用anyMatch, allMatch, noneMatch操作来帮助你实现
映射:
stream支持map方法,map使用一个函数作为一个参数,你可以使用map从stream的一个元素里提取信息。
最新文章
- C++混合编程之idlcpp教程Python篇(7)
- 基础知识系列☞C#中→属性和字段的区别
- Oralce sysaux WRH$_ACTIVE_SESSION_HISTORY清理
- Attribute在.net编程中的应用
- JQuery特效分享网站
- WCF入门(9)
- 日常css和js小知识点记录
- xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
- CyclicBarrier、CountDownLatch与Semaphore的小记
- 【转】eclipse中egit插件使用
- Java Nio 多线程网络下载
- 【iOS知识学习】_iOS沙盒机制
- 两种计算和输出n内5要么9除尽互惠
- Charles使用(一)
- Codeforces Round #430 C. Ilya And The Tree
- Spring框架中的org.springframework.context.annotation.Import注解类
- dx.jar文件问题,有没有同学知道怎么解决呀,这一步没法解决,后面就没办法跟着做了
- create-react-app中添加less支持
- IntelliJ IDEA 高效率配置
- Power BI和 Visio 集成优缺点