Stream简述

本文详细介绍了Java中集合与流的区别和使用。集合关注数据存储,而流专注于数据处理,如filter、map和reduce等操作。流可以顺序或并行执行,但只可遍历一次。通过实例展示了如何使用流进行查询,创建过滤高热量菜品的流水线,并最终收集为列表。流提供了一种高效处理大量数据的方式,提高了代码的可读性和并行处理能力。
摘要由CSDN通过智能技术生成

Stream
从数据源形成的元素序列-----比如集合、数组、输入输出资源

集合是数据结构–主要是以特定的时间(空间)复杂度来访问和存储元素
流主要是处理数据,比如filter map reduce find match sort —可以顺序执行 也可以并行执行
若流取的数据是顺序的,那么流里所存也是顺序的 并行执行的流不能保证执行顺序

集合是存储在内存上的,会包含数据结构中目前所有的值
流是概念上固定的数据库,不能添加或者删除,只是在流中提取需要的值。流只能遍历一次,遍历结束,则这个流被消耗掉了,可以再获得一个新的流用
(集合之类的是可重复的源 若是IO通道则不是

List<String> threeHighCaloricDishNames = menu.stream()//从menu获得流,建立操作流水线
	.filter(d -> d.getCalories() > 300)//首先选出高热量的菜肴
	.map(Dish::getName)//获取菜名
	.limit(3)//只选择头三个
	.collect(toList());/
filter map limit形成流水线(是中间结果  不会生成结果   
	              collect是终端操作(还有forEach count,终端操作会生成结果(结果是不是流的任何  比如LIst Integer void

总结 流的使用包含
1.对源的查询
2.各种中间操作,形成流水线,不形成结果
3.终端操作形成结果

参考文档:
https://blog.csdn.net/a13935302660/article/details/97057513?ops_request_misc=&request_id=&biz_id=102&utm_term=stream&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-9-97057513.first_rank_v2_pc_rank_v29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值