【转载】JDK8 特性 stream(),lambda表达式,
Stream()表达式
虽然大部分情况下stream是容器调用Collection.stream()方法得到的,但stream和collections有以下不同:
无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。
为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。
惰式执行。stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。
可消费性。stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。
1、forEach() 使用该方法迭代流中的每个数据
2、sorted() 使用该方法排序数据
参考地址:https://blog.csdn.net/kris1025/article/details/85861196
参考地址:https://blog.csdn.net/lsgqjh/article/details/63686383
3、filter():使用该方法过滤
4、limit():使用该方法截断
5、skip():与limit互斥,使用该方法跳过元素
6、distinct():使用该方法去重,注意:必须重写对应泛型的hashCode()和equals()方法
7、max,min,sum,avg,count
8、map():接收一个方法作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素
9、flatMap():对每个元素执行mapper指定的操作,并用所有mapper返回的Stream中的元素组成一个新的Stream作为最终返回结果,通俗易懂就是将原来的stream中的所有元素都展开组成一个新的stream
10、findFirst() :使用该方法获取第一个元素
11、reduce() :多面手
12、使用collect()做字符串join
参考地址:https://blog.csdn.net/chenhao_c_h/article/details/80691284
Lambda表达式
最新文章
- pdf 切割成圖片的方法
- Swift-2-基本操作符
- Android:控件ListView列表项与适配器结合使用
- linux下nagios的安装与部署
- symfony2 表单
- [Java]HashMap的两种排序方式
- 第二次冲刺spring会议(第五次会议)
- Flex: Holy Grail
- Html和Css学习笔记-css进阶-盒模型
- laravel学习笔记二
- eclipse Maven Dependencies 黑色背景说明
- 【代码笔记】Web-JavaScript-JavaScript switch语句
- AI 可视化
- Android 7.0以上版本 系统解决拍照的问题 exposed beyond app through ClipData.Item.getUri()
- javascript变量声明前置
- C# 窗体常用API函数 应用程序窗体查找
- Mybatis使用入门
- C# 实体集合和实体转换成相应的string、XDocument、XElement、XDocument
- sqlserver2008事务日志已满
- onbeforeunload事件
热门文章
- 转载--C++的反思
- Internet History, Technology, and Security(week3)——History: The Web Makes it Easy to Use
- AI移动,缓慢转身设置(针对AI Character)
- [springboot jpa] [bug] Could not open JPA EntityManager for transaction
- js中获取当前系统时间
- 在Ubuntu16.04下安装SourceInsight和WeChat
- grep的用法,小技巧,模板中含有\t时:grep -P ";^\t"; file
- 服务器上安装搭建node环境
- list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
- 三十六、python 中subprocess介绍