Stream相关操作和方法

本文介绍了Java Stream的操作,包括中间操作符如map、flatMap、limit、distinct、filter和skip,以及终止操作符如collect、count、findFirst等。通过实例展示了如何使用这些方法处理数据流,如过滤、转换、去重、排序和统计等。此外,还提到了Stream的惰性化特征和并行化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流的转换操作
Stream的操作符基本可以分为中间操作符和终止操作符两大类,中间操作符会继续向下传递,终止操作符直接对数据进行消费或者收集,不会继续向下传递。
—中间操作符
map转换操作符,可以将一个A转换为一个B
flatMap可以将一个A转换为多个B
limit限流操作
distinct去重操作,底层采用equals进行比对
filter过滤操作,去除不满足条件的数据
peek跳出操作
skip跳过操作
sorted排序操作,Comparable和Comparator接口
—终止操作
collect收集操作,使用官方的Collectors提供的收集器
count统计操作,统计数据个数
findFirst/findAny查找操作,返回的类型为Optional
noneMatch、AllMatch和anyMatch匹配操作,检查数据流中是否存在符合条件的数据
min和max最值操作,需要比较器
reduce规约操作,将数据流的值规约为一个值,例如count/min/max底层实际上就是使用reduce
forEach遍历操作,可以对最终的数据进行消费
toArray数组操作,用于将数据流的元素转换为数组
常用方法
filter方法
filter方法用于对传入的数据流进行过滤处理,只返回满足条件的数据组成的新的数据流。
map方法
map方法用于对流中的数据进行某种形式的转换,转换操作函数当作参数传入方法。
flatMap方法
flatMap可以对每个元素应用一个函数,并将返回的值收集到一个新的流中。
limit方法
limit方法会返回一个包含指定个数元素的新stream,如果原始数据总长大小不足则返回原始流。
skip方法
skip方法是跳过多少个元素,继续处理后续元素。
distinct方法
distinct会根据原始流中的元素返回一个具有相同顺序,但是剔除了重复值的流。
sorted方法
sorted方法是遍历整个流的所有数据,并且在产生任何数据元素之前对它进行排序。
查找元素
findFirst返回非空集合中的第一个元素值,一般会与filter方法结合使用。
findAny可以在stream中找到任意一个所匹配的元素就直接返回。
anyMathch判定是否还有匹配的元素,返回一个boolean值。
字符串
将stream中的字符串连接并收集起来,可以在元素之间添加指定符号。
Map集合
可以使用Collectors.toMap方法将集合中的元素收集到Map中,但是要求有2个参数,分别用来生成Map中的key值和value值
总结
stream不是数据结构,没有内存内部存储,只是用操作管道从source中抓取数据,不修改数据的底层结构。
一般stream的操作都是使用lambda表达式为参数。
不支持索引访问。
stream具有惰性化特征,很多的stream都是向后延迟,直到搞清楚有多少数据后进行计算。
并行化操作,parallel方法可以将任意的串行流转换为并行流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值