Stream流学习1

这块我也还不熟悉,请带思考阅读.

1.流介绍

2.流的创建

3.流的使用

3.1筛选与切片

3.1.1 stream().filter() 元素过滤
3.1.2 stream().limit() 获取指定的个数
3.1.3 stream().skip() 跳过指定个元素
3.1.4 stream().distinct() 元素去重
// stream0_2.forEach(System.out::println); 这是结束流的操作 // 如使用下面的3号流 输出stream0_1或者stream0_2后前面的流就不能再在下方使用了. /*1.筛选与切片*/ //过滤 取多少个 跳过几个 去重 Stream<Integer> stream0 = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14); //filter() 过滤 eg:大于5的元素 Stream<Integer> stream0_1 = stream0.filter(e -> e>=8); // stream0_1.forEach(System.out::println); //9 8 10 12 14 14 //limit(n) 获取n个元素 Stream<Integer> stream0_2 = stream0_1.limit(5); // stream0_2.forEach(System.out::println); //9 8 10 12 14 //skip(n) 跳过n元素,配合limit(n)可实现分页 Stream<Integer> stream0_3 = stream0_2.skip(1); // stream0_3.forEach(System.out::println); //8 10 12 14 //distinct() 通过流中元素的 hashCode() 和 equals() 去除重复元素 Stream<Integer> stream0_4 = stream0_3.distinct(); // stream0_4.forEach(System.out::println); //8 10 12 14 //整合下 数组中取3个不重复且大于5的元素 // 6 6 7 去重了6 所以为6 7 Stream<Integer> stream0_5 = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14).filter(e -> e>5).limit(3).distinct(); stream0_5.forEach(System.out::println);

3.2 映射

3.2.1 stream().map() 应用方法到每一个元素上,并将其映射成一个新的元素.
/* 2.映射*/ //两个元素的数组 List<String> strList = Arrays.asList("1,2,3", "a,b,c"); // strList.forEach(System.out::println); //stream().map() 函数e.replace(",", "")会被应用到e上,并将其映射成一个新的元素。 Stream<String> stream1 = strList.stream().map(e -> e.replace(",", "")); stream1.forEach(System.out::println);
3.2.2 stream().flatMap() 将流中的元素都替换成一个新的流

结果

123 abc
//stream().flatMap() 流中的每个值都换成另一个流,然后把所有流连接成一个流。 // e->{ 方法内需要返回一个流 } Stream<String> stream1_1 = strList.stream().e -> { String[] split = e.split(","); Stream<String> tempStream = Arrays.stream(split); return tempStream; }); stream1_1.forEach(System.out::print);

结果

123abc

3.3 排序

3.4 消费


__EOF__

本文作者羊37
本文链接https://www.cnblogs.com/yang37/p/13917583.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   羊37  阅读(96)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示