没有合适的资源?快使用搜索试试~ 我知道了~
1.Stream流 Stream流完全不是I/O流,而是按照流水线处理方式来考虑代码中的思想。 JDK1.8 之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题,直达重点,可以提高效率。 Stream流中使用了大量Lambda表达式,利用Lambda操作方式,提供开发效率。 2.对比【传统遍历方式】&【Stream类处理方式】 传统遍历方式: package com.a_stream; import java.util.ArrayList; /** * 操作集合处理集合 * 操作过程中创建了多个ArrayList,但是
资源推荐
资源详情
资源评论

格式:pdf 资源大小:48.8KB 页数:2

格式:pdf 资源大小:61.9KB 页数:3





























Java中的中的Stream流流
1.Stream流流
Stream流完全不是I/O流,而是按照流水线处理方式来考虑代码中的思想。
JDK1.8 之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题,直达重点,可以提高效率。
Stream流中使用了大量Lambda表达式,利用Lambda操作方式,提供开发效率。
2.对比【传统遍历方式】对比【传统遍历方式】&【【Stream类处理方式】类处理方式】
传统遍历方式:传统遍历方式:
package com.a_stream;
import java.util.ArrayList;
/**
* 操作集合处理集合
* 操作过程中创建了多个ArrayList,但是这些ArrayList都是过客,
* 不涉及到程序的核心,这里会导致资源的浪费。
* @author Anonymous 2020/3/12 9:56
*/
public class Demo2 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("宫保鸡丁");
list.add("酱牛肉");
list.add("羊肉串");
list.add("烤羊排");
list.add("羊肉汤");
list.add("驴肉火烧");
// 第一步: 对List进行过程,找出list中保存元素带有肉的,保存到另一个集合中
ArrayList list1 = new ArrayList();
for (String s : list) {
if (s.contains("肉")) {
list1.add(s);
}
}
// 第二步: 找出菜名长度==3的,保存到另一个集合中
ArrayList list2 = new ArrayList();
for (String s : list1) {
if (3 == s.length()) {
list2.add(s);
}
}
// 第三步:遍历展示对应的数据
for (String s : list2) {
System.out.println(s);
}
}
}
Stream类处理方式:类处理方式:
package com.a_stream;
import java.util.ArrayList;
/**
* 操作集合处理集合
* 采用Stream流方式
*
* @author Anonymous 2020/3/12 9:56
*/
public class Demo2 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("宫保鸡丁");
list.add("酱牛肉");
list.add("羊肉串");
list.add("烤羊排");
list.add("羊肉汤");
list.add("驴肉火烧");
/*
采用Stream流方式来处理
直观角度可以发现,这里Stream流处理方式可以简化代码逻辑,
更侧重于操作的重点
第一步: 对List进行过程,找出list中保存元素带有肉的,
第二步: 找出菜名长度==3的
第三步:遍历展示对应的数据
*/
list.stream()
.filter(s->s.contains("肉"))
.filter(s -> 3 == s.length())
.forEach(s -> System.out.println(s));
}
}
3.Stream流思想流思想
类似于流水线:类似于流水线:
原材料从头到尾只会占用一份空间,中间的过程中不会占用空间。最后生成一个结果。

Stream流的特征:流的特征:
1. 带有很多Stream流操作的方法: filter,limit,map,sorted,skip…这些方法大多都会使用到函数式接口,有lambda表达式
2. 整个Stream流模型的操作过程中,只有执行到count,foreach这些方法,操作真正的执行中的模型,如果不存在结果导向,中间的所有操作是无效的,这里得益于Lambda表
达式的延后性
3. Stream流是存在一定的管道性 Pipelining 流水线
4.获取获取Stream流流
java.util.stream.Stream JDK1.8的新特征
1. 所有的Collection集合都有对应的Stream();
2. 可以通过Stream类中的static Stream of()获取
static Stream of(T... t);
static Stream of(T t);
package com.b_streamget;
import java.util.*;
import java.util.stream.Stream;
/**
* Stream流获取方式
* 1. Collection集合
* 2. Map双边队列
* 3. 数组
*
* @author Anonymous 2020/3/12 11:16
*/
public class Demo1 {
public static void main(String[] args) {
// List接口获取对应的Stream流类对象
List list = new ArrayList();
// 根据list保存元素的类型来约束对应的Stream流对象操作所需类型
Stream stream = list.stream();
// 通过Set集合获取对应Stream流对象
HashSet set1 = new HashSet();
Stream stream1 = set1.stream();
HashMap map = new HashMap();
// Map双边队列中所有键对应的Set集合
Set keySet = map.keySet();
Stream stream2 = keySet.stream();
// Map双边队列中所有value对应的Collection集合
Collection values = map.values();
Stream stream3 = values.stream();
// map中有一个方法,可以获取所有键值对类型的Set集合
// Entry ==> 键值对,是Map接口的一个成员接口
Set<Map.Entry> entrySet = map.entrySet();
// 获取Map键值对集合的Stream流对象
Stream<Map.Entry> stream4 = entrySet.stream();
剩余6页未读,继续阅读
资源评论


weixin_38742460
- 粉丝: 19
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大数据时代存量档案数字化信息采集.docx
- 机械制造与自动化人才培养方案.doc
- 最新ppt简约小清新风信息化教学设计教师课件模板.pptx
- 推动互联网、大数据、人工智能和实体经济深度融合ppt通用模板.pptx
- IT前沿技术探索之软件定义网络.doc
- “国培计划”--山西省乡村中小学教师网络研修与校本研修整合培训项目实施项目.doc
- 计算机技术应用与电子商务发展分析.docx
- 基于铁路动车所BIM+GIS模型配色规则研究.docx
- 面向卓越软件工程师培养的课程体系改革与实践.docx
- 软考数据库系统工程师复习资料(完全版).docx
- 大数据时代背景下高校图书馆采编工作的转型分析.docx
- 简析电气工程及其自动化的发展现状与发展展望.docx
- 工程项目管理-第一次必做作业答案.doc
- 中南大学网络学院工程测量考试试题(六)答案.doc
- 电气控制与PLC应用期末考试卷子.doc
- 中国网络直播行业分析报告-市场竞争现状与发展前景评估.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
