Java中Lambda 表达式的解释

从 Java 8 开始,Lambda 表达式成为 Java 的一等公民。它不仅让代码更简洁,还为函数式编程打开了大门。如果你还没真正理解或使用过 Lambda,这篇文章就是为你写的。

一、什么是 Lambda 表达式?

Lambda 表达式是 Java 中的一种匿名函数写法,可以把函数作为参数传递。
它的作用就是:用更简洁的方式实现接口中的唯一抽象方法(即函数式接口)。

我觉得需要强调的是:只要这个接口满足 只包含一个抽象方法,就可以是函数式接口,即使它没有加 @FunctionalInterface 注解!!!

二、 基本语法

(参数列表) -> { 方法体 }

常见形式:

示例含义
() -> System.out.println("Hello")无参无返回值
(x) -> x * x单个参数有返回
(a, b) -> a + b多个参数返回结果
(x, y) -> { return x * y; }有代码块时用 {}

三、 使用 Lambda 的前提:函数式接口

Lambda 表达式只能用于函数式接口,即只包含一个抽象方法的接口。

Java 提供了许多常用的函数式接口,比如:

接口方法签名说明
Runnablevoid run()无参无返回值
Consumer<T>void accept(T t)消费一个值
Supplier<T>T get()提供一个值
Function<T,R>R apply(T t)转换/映射值
Predicate<T>boolean test(T t)条件判断

四、Lambda 的代码的示例

List<String> list = Arrays.asList("banana", "apple", "kiwi");// 按字符串长度排序
list.sort((s1, s2) -> s1.length() - s2.length());System.out.println(list); // [kiwi, apple, banana]

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

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

相关文章

Spring AI调用Embedding模型返回HTTP 400:Invalid HTTP request received分析处理

调用Embedding模型失败 Spring AI项目使用的Embedding模型是公司平台部署的&#xff0c;请求模型服务的时候报错&#xff0c;返回了HTTP 400 - Invalid HTTP request received错误。然后换成云厂商在线Embedding模型地址&#xff0c;正常调通。我用Apifox直接调用公司的模型服务…

Pytorch-02数据集和数据加载器的基本原理和基本操作

1. 为什么要有数据集类和数据加载器类&#xff1f; 一万个人会有一万种获取并处理原始数据样本的代码&#xff0c;这会导致对数据的操作代码标准不一&#xff0c;并且很难复用。为了解决这个问题&#xff0c;Pytorch提供了两种最基本的数据相关类&#xff1a; torch.utils.data…

无图形界面的CentOS 7网络如何配置

进入虚拟机输入ip addr命令&#xff1a;从 ip addr命令的输出可以明确看出 ​​lo和 ens33是两个不同的网络接口&#xff08;网卡&#xff09;lo&#xff08;回环接口&#xff09;​​​​作用​​&#xff1a;虚拟的本地回环网卡&#xff0c;用于本机内部通信&#xff08;如 1…

机器学习之线性回归的入门学习

线性回归是一种监督学习算法&#xff0c;用于解决回归问题。它的目标是找到一个线性关系&#xff08;一条直线或一个超平面&#xff09;&#xff0c;能够最好地描述一个或多个自变量&#xff08;特征&#xff09;与一个因变量&#xff08;目标&#xff09;之间的关系。利用回归…

2-5 Dify案例实践—利用RAG技术构建企业私有知识库

目录 一、RAG技术的定义与作用 二、RAG技术的关键组件 三、RAG技术解决的问题 四、RAG技术的核心价值与应用场景 五、如何实现利用RAG技术构建企业私有知识库 六、Dify知识库实现详解 七、创建知识库 1、创建知识库 2、上传文档 3、文本分段与清洗 4、索引方式 5、…

断路器瞬时跳闸曲线数据获取方式

断路器瞬时短路电流时&#xff0c;时间是在60ms内的&#xff0c;仿真器去直接捕获电流有效值很难。按照电流互感器的电流曲线特性&#xff0c;电流越大&#xff0c;由于互感器饱和&#xff0c;到达一定电流值的时候&#xff0c;电流会趋于平稳不再上升&#xff0c;ADC-I曲线由线…

技巧|SwanLab记录混淆矩阵攻略

绘制混淆矩阵&#xff08;Confusion Matrix&#xff09;&#xff0c;用于评估分类模型的性能。混淆矩阵展示了模型预测结果与真实标签之间的对应关系&#xff0c;能够直观地显示各类别的预测准确性和错误类型。 混淆矩阵是评估分类模型性能的基础工具&#xff0c;特别适用于多…

HTTPS的工作原理

文章目录HTTP有什么问题&#xff1f;1. 明文传输&#xff0c;容易被窃听2. 无法验证通信方身份3. 数据完整性无法保证HTTPS是如何解决这些问题的&#xff1f;HTTPS的工作原理1. SSL/TLS握手2. 数据加密传输3. 完整性保护4. 连接关闭总结HTTP有什么问题&#xff1f; 1. 明文传输…

ECMAScript2020(ES11)新特性

概述 ECMAScript2020于2020年6月正式发布&#xff0c; 本文会介绍ECMAScript2020(ES11)&#xff0c;即ECMAScript的第11个版本的新特性。 以下摘自官网&#xff1a;ecma-262 ECMAScript 2020, the 11th edition, introduced the matchAll method for Strings, to produce an …

机器视觉引导机器人修磨加工系统助力芯片封装

芯片制造中&#xff0c;劈刀同轴度精度对封装质量至关重要。传统加工在精度、效率、稳定性、良率及操作便捷性上存在不足&#xff1a;精度不足&#xff1a;劈刀同轴度需控在 0.003mm 内&#xff0c;传统手段难达标&#xff0c;致芯片封装良率低&#xff1b;效率良率低 &#xf…

Python编程基础与实践:Python模块与包入门实践

Python模块与包的深度探索 学习目标 通过本课程的学习&#xff0c;学员将掌握Python中模块和包的基本概念&#xff0c;了解如何导入和使用标准库中的模块&#xff0c;以及如何创建和组织自己的模块和包。本课程将通过实际操作&#xff0c;帮助学员加深对Python模块化编程的理解…

【Django】-4- 数据库存储和管理

一、关于ORM ORM 是啥呀ORM 就是用 面向对象 的方式&#xff0c;把数据库里的数据还有它们之间的关系映射起来&#xff5e;就好像给数据库和面向对象之间搭了一座小桥梁&#x1f380;对应关系大揭秘面向对象和数据库里的东西&#xff0c;有超有趣的对应呢&#x1f447;类 → 数…

深入 Go 底层原理(四):GMP 模型深度解析

1. 引言在上一篇文章中&#xff0c;我们宏观地了解了 Go 的调度策略。现在&#xff0c;我们将深入到构成这个调度系统的三大核心组件&#xff1a;G、M、P。理解 GMP 模型是彻底搞懂 Go 并发调度原理的关键。本文将详细解析 G、M、P 各自的职责以及它们之间是如何协同工作的。2.…

AI赋能测试:技术变革与应用展望

AI 在测试中的应用&#xff1a;技术赋能与未来展望 目录 AI 在测试中的应用&#xff1a;技术赋能与未来展望 1. 引言 1.1 测试在软件开发中的重要性 1.2 AI 技术如何改变传统测试模式 1.3 文章结构概述 2. AI 在测试中的核心应用场景 2.1 自动化测试优化 2.1.1 智能测…

Mujoco(MuJoCo,全称Multi - Joint dynamics with Contact)一种高性能的物理引擎

Mujoco&#xff08;MuJoCo&#xff0c;全称Multi - Joint dynamics with Contact&#xff09;是一种高性能的物理引擎&#xff0c;主要用于模拟多体动力学系统&#xff0c;广泛应用于机器人仿真、运动学研究、人工智能等领域。以下是关于Mujoco仿真的一些详细介绍&#xff1a; …

winform-窗体应用的功能介绍(部分)

1--Point实现在窗口(Form)中一个按钮(控件)的固定位置(所在位置)一个按钮(控件)的位置一般是固定的,另一个按钮在窗口中位置是随机产生的Location属性:Location new Point(X,Y);在C#的Winform应用程序里,Button控件的鼠标悬标悬浮事件是不存在内置延迟时间的。当鼠标指针进入按…

最新Windows11系统镜像,23H2 64位ISO镜像

Windows 11 主要分为 Consumer Editions&#xff08;消费者版&#xff09;和 Business Editions&#xff08;商业版&#xff09;两大类别 。消费者版主要面向家庭和个人用户&#xff0c;商业版则侧重于企业和商业用户。这两大类别中存在部分重叠的版本&#xff0c;比如专业版和…

linux基本系统服务——DNS服务

一、DNS域名解析原理DNS&#xff0c;Domain Name System&#xff0c;域名系统&#xff1a;在互联网中由大量域名解析服务器共同提供的一整套关于“域名 <--> IP地址”信息查询的数据系统!!!! C/S架构&#xff1a;DNS服务端监听UDP 53端口&#xff08;处理客户端查询&…

数据处理和统计分析——08 apply自定义函数

1 apply()函数 1.1 apply()函数简介 Pandas提供了很多数据处理的API&#xff0c;但当提供的API不能满足需求的时候&#xff0c;需要自己编写数据处理函数, 这个时候可以使用apply()函数&#xff1b;apply()函数可以接收一个自定义函数&#xff0c;可以将DataFrame的行或列数据传…

C++冰箱管理实战代码

基于C++的冰箱管理实例 以下是一些基于C++的冰箱管理实例示例,涵盖不同功能场景,每个示例聚焦特定实现点,代码可直接扩展或整合到项目中。 示例1:基础冰箱类定义 class Refrigerator { private:int capacity;std::vector<std::string> items; public:Refrigerator(…