Java stream流和方法引用
2.Stream流2.1体验Stream流【理解】案例需求按照下面的要求完成集合的创建和遍历创建一个集合存储多个字符串元素把集合中所有以张开头的元素存储到一个新的集合把张开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合Stream流的常见生成方式【应用】Stream流的思想Stream流的三类方法获取Stream流创建一条流水线,并把数据放到流水线上准备进行操作中间方法流水线上的操作一次操作完毕之后,还可以继续进行其他操作终结方法一个Stream流只能有一个终结方法是流水线上的最后一个操作生成Stream流的方式Collection体系集合使用默认方法stream()生成流 default StreamE stream()Map体系集合把Map转成Set集合间接的生成流数组通过Arrays中的静态方法stream生成流同种数据类型的多个数据通过Stream接口的静态方法of(T... values)生成流2.3Stream流中间操作方法【应用】概念中间操作的意思是,执行完此方法之后,Stream流依然可以继续执行其他操作常见方法方法名说明StreamT filter(Predicate predicate)用于对流中的数据进行过滤StreamT limit(long maxSize)返回此流中的元素组成的流截取前指定参数个数的数据StreamT skip(long n)跳过指定参数个数的数据返回由该流的剩余元素组成的流static T StreamT concat(Stream a, Stream b)合并a和b两个流为一个流StreamT distinct()返回由该流的不同元素根据Object.equals(Object) 组成的流2.4Stream流终结操作方法【应用】概念终结操作的意思是,执行完此方法之后,Stream流将不能再执行其他操作常见方法方法名说明void forEach(Consumer action)对此流的每个元素执行操作long count()返回此流中的元素数2.5Stream流的收集操作【应用】概念对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中常用方法方法名说明R collect(Collector collector)把结果收集到集合中工具类Collectors提供了具体的收集方式方法名说明public static T Collector toList()把元素收集到List集合中public static T Collector toSet()把元素收集到Set集合中public static Collector toMap(Function keyMapper,Function valueMapper)把元素收集到Map集合中3.方法引用3.1体验方法引用【理解】方法引用的出现原因在使用Lambda表达式的时候我们实际上传递进去的代码就是一种解决方案拿参数做操作那么考虑一种情况如果我们在Lambda中所指定的操作方案已经有地方存在相同方案那是否还有必要再写重复逻辑呢答案肯定是没有必要那我们又是如何使用已经存在的方案的呢这就是我们要讲解的方法引用我们是通过方法引用来使用已经存在的方案3.2方法引用符【理解】方法引用符:: 该符号为引用运算符而它所在的表达式被称为方法引用推导与省略如果使用Lambda那么根据“可推导就是可省略”的原则无需指定参数类型也无需指定的重载形式它们都将被自动推导如果使用方法引用也是同样可以根据上下文进行推导方法引用是Lambda的孪生兄弟3.3引用类方法【应用】​ 引用类方法其实就是引用类的静态方法格式类名::静态方法范例Integer::parseIntInteger类的方法public static int parseInt(String s) 将此String转换为int类型数据练习描述定义一个接口(Converter)里面定义一个抽象方法 int convert(String s);定义一个测试类(ConverterDemo)在测试类中提供两个方法一个方法是useConverter(Converter c)一个方法是主方法在主方法中调用useConverter方法3.4引用对象的实例方法【应用】​ 引用对象的实例方法其实就引用类中的成员方法格式对象::成员方法范例HelloWorld::toUpperCaseString类中的方法public String toUpperCase() 将此String所有字符转换为大写练习描述定义一个类(PrintString)里面定义一个方法public void printUpper(String s)把字符串参数变成大写的数据然后在控制台输出定义一个接口(Printer)里面定义一个抽象方法void printUpperCase(String s)定义一个测试类(PrinterDemo)在测试类中提供两个方法一个方法是usePrinter(Printer p)一个方法是主方法在主方法中调用usePrinter方法3.5引用类的实例方法【应用】​ 引用类的实例方法其实就是引用类中的成员方法格式类名::成员方法范例String::substringpublic String substring(int beginIndex,int endIndex)从beginIndex开始到endIndex结束截取字符串。返回一个子串子串的长度为endIndex-beginIndex练习描述定义一个接口(MyString)里面定义一个抽象方法String mySubString(String s,int x,int y);定义一个测试类(MyStringDemo)在测试类中提供两个方法一个方法是useMyString(MyString my)一个方法是主方法在主方法中调用useMyString方法3.6引用构造器【应用】​ 引用构造器其实就是引用构造方法l格式类名::new范例Student::new练习描述定义一个类(Student)里面有两个成员变量(name,age)并提供无参构造方法和带参构造方法以及成员变量对应的get和set方法定义一个接口(StudentBuilder)里面定义一个抽象方法Student build(String name,int age);定义一个测试类(StudentDemo)在测试类中提供两个方法一个方法是useStudentBuilder(StudentBuilder s)一个方法是主方法在主方法中调用useStudentBuilder方法

相关新闻

Windows 11 26H1 | 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 2 月更新)

Windows 11 26H1 | 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 2 月更新)

Windows 11 26H1 | 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 2 月更新) Windows 11, version 26H1 | 25H2 | 24H2 Enterprise Arm64 x64 (updated Feb 2026) 请访问原文链接:https://sysin.org/blog/windows-11/ 查看最新版。原创作品,…

2026/7/3 15:00:54 阅读更多 →
[嵌入式系统-248]:单片机:键盘控制芯片

[嵌入式系统-248]:单片机:键盘控制芯片

键盘控制芯片(Keyboard Controller IC)是专为简化单片机(MCU)与多按键接口而设计的集成电路,适用于按键数量多、要求低功耗、高可靠性的场景。相比软件扫描矩阵键盘,它能显著降低 MCU 负担、提升响应速度、…

2026/5/17 5:29:41 阅读更多 →
兰溪民间故事《吕洞宾为啥肩背宝剑》

兰溪民间故事《吕洞宾为啥肩背宝剑》

兰溪民间故事《吕洞宾为啥肩背宝剑》据讲,吕洞宾刚得道成仙时,是没有宝剑背在肩上的,后来又为啥背一把宝剑呢?这里有一段来历。吕洞宾是个游仙,东南西北都有他的行迹。一日,他游到了“美人国”。美人国里没…

2026/5/17 5:29:41 阅读更多 →

最新新闻

Netcat内网渗透实战:5分钟掌握文件传输与反向Shell

Netcat内网渗透实战:5分钟掌握文件传输与反向Shell

1. 项目概述:为什么Netcat是内网渗透的“瑞士军刀”如果你经常在Kali Linux或者CentOS这类Linux环境下工作,尤其是涉及到系统管理、应急响应或者安全测试,那么Netcat(简称nc)这个名字你一定不陌生。它被誉为网络工具中…

2026/7/4 15:42:31 阅读更多 →
最小化均方误差(MSE)与频繁主义建模实战指南

最小化均方误差(MSE)与频繁主义建模实战指南

1. 这不是数学课,是解决实际问题的工具箱:从“最小化均方误差”说起 你手头有一组传感器读数,但它们总在真实值附近晃悠;你训练了一个房价预测模型,结果有的房子估高了50万,有的又低估了80万;你…

2026/7/4 15:40:31 阅读更多 →
3步快速上手:终极Google Cloud Vision图像识别项目实战指南

3步快速上手:终极Google Cloud Vision图像识别项目实战指南

3步快速上手:终极Google Cloud Vision图像识别项目实战指南 【免费下载链接】cloud-vision Sample code for Google Cloud Vision 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-vision 你是否曾经想过,如何让计算机像人类一样"看懂&q…

2026/7/4 15:40:31 阅读更多 →
DeepSeek转型AI基础设施:从大模型到企业级MaaS平台

DeepSeek转型AI基础设施:从大模型到企业级MaaS平台

1. 项目概述:从大模型公司到AI基础设施服务商的转身 “DeepSeek不想只做大模型了”——这句话最近在技术圈传开时,不少同行第一反应是:他们刚把V2训出来,R1刚跑通多模态,怎么就“不想”了?其实这话不是放弃…

2026/7/4 15:40:31 阅读更多 →
基于改进YOLOv8的动物检测与分类系统实现

基于改进YOLOv8的动物检测与分类系统实现

1. 动物检测与分类系统概述 在计算机视觉领域,动物检测与分类一直是一个具有挑战性且应用广泛的研究方向。随着深度学习技术的快速发展,基于YOLO系列算法的目标检测系统已经在多个领域展现出卓越性能。本文将详细介绍一个基于改进YOLOv8的动物检测与分类…

2026/7/4 15:38:30 阅读更多 →
元启发式算法实战指南:从原理到工业级VRPTW优化

元启发式算法实战指南:从原理到工业级VRPTW优化

1. 什么是“Metaheuristics”?它不是玄学,而是工程实践中反复锤炼出来的“问题求解导航系统”“Metaheuristics”这个词一出现,很多人第一反应是:又一个拗口的学术黑话。但如果你做过物流路径优化、芯片布线、广告投放组合决策、新…

2026/7/4 15:38:30 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻