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的一个元素里提取信息。

最新文章

  1. C++混合编程之idlcpp教程Python篇(7)
  2. 基础知识系列☞C#中→属性和字段的区别
  3. Oralce sysaux WRH$_ACTIVE_SESSION_HISTORY清理
  4. Attribute在.net编程中的应用
  5. JQuery特效分享网站
  6. WCF入门(9)
  7. 日常css和js小知识点记录
  8. xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
  9. CyclicBarrier、CountDownLatch与Semaphore的小记
  10. 【转】eclipse中egit插件使用
  11. Java Nio 多线程网络下载
  12. 【iOS知识学习】_iOS沙盒机制
  13. 两种计算和输出n内5要么9除尽互惠
  14. Charles使用(一)
  15. Codeforces Round #430 C. Ilya And The Tree
  16. Spring框架中的org.springframework.context.annotation.Import注解类
  17. dx.jar文件问题,有没有同学知道怎么解决呀,这一步没法解决,后面就没办法跟着做了
  18. create-react-app中添加less支持
  19. IntelliJ IDEA 高效率配置
  20. Power BI和 Visio 集成优缺点

热门文章

  1. POJ_2115_扩展欧几里德
  2. 在centos 配置python django环境 总结
  3. revit二次开发之族的类型参数与实例参数的转换
  4. 【转载】Java 反射详解
  5. springMVC返回汉字字符串乱码,以及返回的字符串乱码的问题
  6. Pytorch实战(3)----分类
  7. kernel学习单
  8. mapbox 支持国家2000 坐标系的数据
  9. [jzoj 5776]【NOIP2008模拟】小x游世界树 (树形dp)
  10. WPF通过鼠标滑轮缩放显示图片