JDK8新特性之lambda表达式

news2024/11/16 11:59:40

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于lambda表达式的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一.是什么

二.为什么要用

三.底层

四.什么时候用

五.怎么用

💡辉辉小贴士:十个必须掌握的lambda表达式


一.是什么

        Lambda 是一个 匿名函数 ,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java语言表达能力得到了提升

二.为什么要用

在此之前,使用匿名内部类来完成,而使用匿名内部类的方式,相对冗余

Lambda表达式与匿名内部类的区别

  1. 所需类型不一样,匿名内部类需要的类型可以是类,也可以是抽象类,接口;而lambda表达式需要的类型必须是接口
  2. 抽象方法的数量不一样,匿名内部类所需的接口中的方法的数量随意,但lambda表达式只能有一个抽象方法
  3. 实现原理不同,匿名内部类是在编译之后形成class,而lambda文件时在程序运行的时候动态生成class

综上,lambda表达式比匿名内部类要更加方便,因此出现了lambda表达式来替代它

三.底层

  • 函数式编程思想,将需要执行的代码放入函数(相当类里面的方法)中即可
    • 底层逻辑
      • 在类里面新增一个方法,这个方法就是lambda表达式中的代码
      • 还会形成一个匿名内部类
      • 在接口中重写方法中会调用新生成

四.什么时候用

  • 方法的参数或者局部变量是一个接口
  • 接口中有且只有一个抽象方法
    • 检测是否只有一个抽象方法

五.怎么用

  •  格式:左侧是参数列表,接着是->【起到连接的作用,连接左右两侧】,右侧是方法体
  • 省略
    • 小括号内的参数类型可以省略
    • 如果小括号内有且只有一个参数,那么小括号可以省略
    • 如果大括号内有且只有一个语句,那么return和大括号,语句分号都可以省略

💡辉辉小贴士:十个必须掌握的lambda表达式

1. 使用lambda表达式定义函数类型的变量:

   Function<Integer, Integer> square = x -> x * x;
   
2. 使用lambda表达式遍历集合:

   List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
   list.forEach(x -> System.out.println(x));
   
3. 使用lambda表达式过滤集合:

   List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
   list.stream().filter(x -> x % 2 == 0).forEach(x -> System.out.println(x));

4. 使用lambda表达式对集合进行排序:

   List<Integer> list = Arrays.asList(5, 1, 3, 4, 2);
   list.sort((x, y) -> x - y);
   
5. 使用lambda表达式对集合进行计算:

   List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
   int sum = list.stream().reduce(0, (x, y) -> x + y);
   
6. 使用lambda表达式定义线程:

   new Thread(() -> System.out.println("Hello World")).start();
   
7. 使用lambda表达式定义事件监听器:

   button.addActionListener(event -> System.out.println("Button clicked"));
   
8. 使用lambda表达式处理异常:

   handleException(ex -> System.out.println("Exception caught: " + ex.getMessage()));
   
9. 使用lambda表达式处理Optional对象:

   Optional<Integer> optionalValue = getValue();
   optionalValue.ifPresent(value -> System.out.println("Value: " + value));
   
10. 使用lambda表达式实现接口的默认方法:

   interface MyInterface {
       default void myDefaultMethod() {
           System.out.println("Default method");
       }
   }

                      好啦,今天的分享就到这了,希望能够帮到你呢! 😊😊                 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【资料分享】Xilinx Zynq-7010/7020工业核心板规格书(双核ARM Cortex-A9 + FPGA,主频766MHz)

1 核心板简介 创龙科技SOM-TLZ7x是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业核心板&#xff0c;处理器集成PS端双核ARM Cortex-A9 PL端Artix-7架构28nm可编程逻辑资源&#xff0c;通过工业级B2B连接器引出千兆网口、USB、CAN、UA…

Linux发展史和Linux系统安装

Linux发展史和Linux系统安装 Linux发展史Linux前身-UnixLinux诞生开源文化Linux系统特点Linux分支 Linux系统的安装安装方式虚拟机软件虚拟机的安装VMware Workstation的安装Virtual Box的安装 Linux版本的选择新建虚拟机选择镜像文件安装使用VMware Workstation Linux操作系统…

【总结】yarn ResourceManager 宕机重启总是失败解决排查

目录 Yarn ResourceManager 莫名奇妙宕机重启Yarn ResourceManager 报错1重启Yarn ResourceManager 报错2成功解决 Yarn ResourceManager 莫名奇妙宕机 接到同事反馈&#xff0c;说yarn RM 端口总是访问超时。但是查看日志&#xff0c;又没有发现任务蛛丝马迹&#xff0c;且RM…

ChatGPT扇动翅膀后带来的蝴蝶效应

对于蝴蝶效应最常见的阐述是&#xff1a;“一只南美洲亚马逊河流域热带雨林中的蝴蝶&#xff0c;偶尔扇动几下翅膀&#xff0c;可以在两周以后引起美国得克萨斯州的一场龙卷风。” 简介肯尼亚essay 正文论文代写之都为什么是肯尼亚?蝴蝶效应 简介 在印象中贫穷且落后的东非国家…

小航助学2023年6月GESP_C++一级试卷(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;_程序猿下山的博客-CSDN博客 删除编辑附件图文 答案:A 第1题以下不属于计算机输出设备的有&#xff08; &#xff09;。 A、麦克风B、音箱C、打印机D、显示器 答…

【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

文章目录 一、集群规划及架构二、系统初始化准备(所有节点同步操作)三、安装并配置cri-dockerd插件四、安装kubeadm(所有节点同步操作)五、初始化集群六、Node节点添加到集群七、安装网络组件Calico八、测试CoreDNS解析可用性 一、集群规划及架构 官方文档&#xff1a; 二进制…

低代码开发平台魔笔,评测火热征集!

阿里云低代码开发平台魔笔是一款面向全端&#xff08;Web、H5、全平台小程序、App&#xff09;场景&#xff0c;模型驱动的低代码开发平台&#xff0c; 具有集成开放、一云多端、多云部署等优势&#xff0c;助力客户在数字化转型进程中真正实现降本增效。 即日起至7月31日&…

自学网络安全遇到问题怎么解决?

趁着今天下班&#xff0c;我花了几个小时整理了下&#xff0c;非常不易&#xff0c;希望大家可以点赞收藏支持一波&#xff0c;谢谢。 我的经历&#xff1a; 我 19 年毕业&#xff0c;大学专业是物联网工程&#xff0c;我相信很多人在象牙塔里都很迷茫&#xff0c;到了大三大…

Xilinx XCZU7EV评估板规格书(四核ARM Cortex-A53 + 双核ARM Cortex-R5 + FPGA,主频1.5GHz)

1 评估板简介 创龙科技TLZU-EVM是一款基于Xilinx UltraScale MPSoC系列XCZU7EV高性能处理器设计的高端异构多核SoC评估板&#xff0c;处理器集成PS端&#xff08;四核ARM Cortex-A53 双核ARM Cortex-R5&#xff09; PL端UltraScale架构可编程逻辑资源&#xff0c;支持4K60fp…

Docker学习笔记4

使用docker管理容器&#xff1a; 理解下容器、镜像、仓库、docker daemon和docker client三者之间的关系&#xff1a; 总结&#xff1a; 1&#xff09;docker客户端下达命令docker daemon。 2&#xff09;docker daemon 先到本地镜像目录查找容器&#xff0c;如果没有&#…

韶音openfit值得入吗?南卡、韶音、cleer哪家的开放式耳机好呢?

开放式耳机以其独特的音场表现和自然的听觉感受&#xff0c;以及不入耳的舒适佩戴体验而赢得了众多音乐发烧友和运动爱好者的们的青睐。今天&#xff0c;给大家带来了开放式耳机市场中备受关注的三款开放式耳机&#xff0c;分别是NANK南卡OE PRO、韶音OpenFit、和cleer ARC II;…

简易MFC的成绩管理系统

意义 掌握MFC控件的基本使用&#xff0c;结合了面向对象和Window消息机制的知识。 选择做简单的成绩管理系统&#xff0c;该项目切合大学生实际情况。易于更好理解。 项目实现了成绩的增加、修改、删除、存储&#xff08;文件读写操作&#xff09;的功能。 创建项目 打开软件…

Bytebase 2.3.0 - Snowflake SQL 审核,Oracle 数据脱敏和数据导出中心

&#x1f680; 新功能 支持 Snowflake 的 SQL 审核❄️。 新增数据导出中心。 支持 Oracle 的数据脱敏。 &#x1f384; 改进 支持配置外部审批节点&#xff0c;并用于自定义审批流中。 自定义审批流支持「退回」操作。 项目的「租户模式」改名为「批量模式」。 优化了…

GraalVM初体验

本篇文章我会根据自己的本机安装GraalVM&#xff0c;并将一个简单的jar打包成一个可执行文件 机器&#xff1a;mac 处理器2.7 GHz 四核Intel Core i7 &#xff08;非M1&#xff09; GraalVM&#xff1a;17 &#xff08;支持的jdk为8-17&#xff09;&#xff0c;因此不需要找单独…

时速云使用 Higress 替换 Ngnix Ingress + Spring Cloud Gateway 的生产实践

作者&#xff1a;王金山&#xff0c;北京云思畅想科技有限公司技术部微服务架构师&#xff0c;负责公司 API 网关和服务网格等研发工作 时速云介绍 时速云成立于2014年10月&#xff0c;致力于通过云原生技术帮助企业实现数字化转型&#xff0c;拥有云原生应用平台 TCAP 和云原…

php 目录

简介 PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。 PHP代码的标签 数据类型 String&#xff08;字符串&#xff09; Integer&#xff08;整型&#xff09; Float&#xff08;浮点型&#xff09; Boolean&#xff08;布尔型&#xff09; Array&#xff08;数组&…

knife4j(swagger2)实现spring security或shiro权限注解内容显示

在前后端交互时&#xff0c;某些接口需要指定权限才能访问&#xff0c;虽然可以在ApiOperation注解的notes参数上自己加上&#xff0c;但是每个接口都要手动写&#xff0c;有点儿。。。 基于此需求&#xff0c;我们可以使用swagger提供的OperationBuilderPlugin&#xff0c;通…

档案库房空气质量温湿度一体化平台解决方案

档案馆温湿度十防环境一体化解决平台方案 说明&#xff1a;档案库房温湿度一般要达到如下要求&#xff1a; 在选定温度、湿度后&#xff0c;每昼夜波动幅度温度≦2℃&#xff0c;湿度≦5%RH。 下表是档案库房温湿度要求列表&#xff1a; 档案库房温湿度要求 项 目 温湿度范…

企业给员工内部搭建知识库用什么好?

企业给员工内部搭建知识库是一种有效的知识管理方式&#xff0c;可以帮助企业更好地管理和共享知识资源&#xff0c;提高员工的工作效率和学习能力。本文将介绍企业搭建内部知识库的好处、搭建方法和注意事项等方面的内容&#xff0c;希望对企业进行知识管理的决策者有所帮助。…

青年就业创业数据分析:视频相关就业已成为数字生态就业的主要发展形式

哈喽大家好&#xff0c;随着网络的普及&#xff0c;利用数字科技与互联网技术&#xff0c;以青年群体为主要对象&#xff0c;数字生态行业催生出了一大批新兴的就业岗位。世界范围内&#xff0c;数字生态经济已成为不少国家经济发展的重要支撑&#xff0c;成为解决青年就业问题…