Lambda表达式之入门基础

《C#零基础入门之百识百例》(七十三)匿名函数 -- Lambda表达式 匿名方法(Anonymous methods):提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。匿名方法本质上是一个方法,只是没有名字,任何使用委托变量的地方都可以使用匿名方法。 阅读详情

1.前言

  • 对lambda表达式的个人理解:是由匿名内部类演变而来的一种更加简洁、更灵活的一种代码编写方式,其中最主要的改变了匿名内部类中实现接口中方法的形式。

1.1.匿名内部类和Lambda表达式的比较

#匿名内部类的形式
@Test
public void test01(){
    //匿名内部类
    Comparator<Integer> comparator = new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return Integer.compare(o1,o2);
        }

        @Override
        public boolean equals(Object obj) {
            return false;
        }
    };
    //调用
    TreeSet<Integer> set = new TreeSet<>(comparator);
}

#Lambda表达式的形式
@Test
public void test02(){
    // Lambda 表达式
    Comparator<Integer> comparator = (a, b) -> Integer.compare(a, b);
   //调用
    TreeSet<Integer> set = new TreeSet<>(comparator);
}

2 使用Lambda表达式的前提条件

  • 函数式接口:接口中只有一个抽象方法的接口 @FunctionalIterface

3.语法介绍
3.1.基本语法

- 操作符:->
- 左侧:参数列表
- 右侧:执行代码块 / Lambda 体

3.2.不同情况下的语法应用

  • 无参数,无返回值:() -> sout
#例如Runnable接口:
public class Test02 {
	int num = 10; //jdk 1.7以前 必须final修饰
	
	#匿名内部类中的形式
	
    @Test
    public void test01(){
        //匿名内部类
        new Runnable() {
            @Override
            public void run() {
                //在局部类中引用同级局部变量
                //只读
                System.out.println("Hello World" + num);
            }
        };
    }

#Lambda表达式中的形式
    @Test
    public void test02(){
        //语法糖
     	Runnable runnable = () -> {
         	System.out.println("Hello Lambda");
     	};
    }
}
  • 有一个参数,无返回值 (小括号可以省略不写)
@Test
public void test03(){
    Consumer<String> consumer = (a) -> System.out.println(a);
    //还可以这样写
    //  Consumer<String> consumer = a -> System.out.println(a);
    consumer.accept("我觉得还行!");
}
  • 有两个及以上的参数,有返回值,并且 Lambda 体中有多条语句
@Test
public void test04(){
    Comparator<Integer> comparator = (a, b) -> {
        System.out.println("比较接口");
        return Integer.compare(a, b);
    };
}
  • 有两个及以上的参数,有返回值,并且 Lambda 体中只有1条语句 (大括号 与 return 都可以省略不写)
@Test
public void test04(){
    Comparator<Integer> comparator = (a, b) -> Integer.compare(a, b);
}

4 jdk8中可以使用lambda表达式的接口

    java.lang.Runnable

    java.util.concurrent.Callable

    java.security.PrivilegedAction

    java.util.Comparator

    java.io.FileFilter

    java.nio.file.PathMatcher 

    java.lang.reflect.InvocationHandler

    java.beans.PropertyChangeListener

    java.awt.event.ActionListener  

    javax.swing.event.ChangeListener
SPSS_Process—简单&平行&链式中介模型 本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。 阅读详情

相关推荐

ArcGIS License Server点击启动没反应,许可管理器无法启动怎么办

4 当我们再打开ArcGIS License Server Administrator的时候。3 在【服务】中找到【ArcGIS License Manager】双击。无法启动ArcGIS License Server的情况。在使用ArcGIS的过程中,我们经常会遇到。专注GIS领域知识分享,交流行业软件技巧。欢迎关注,不定期分享GIS各种问题和技巧。1 右击我的电脑——【管理】服务状态——启动,确定即可。启动类型选择——自动。

GIS蒲公英的博客 2万+

Java Lambda 表达式使用详解:从匿名内部类到函数式接口,一篇文章手把手教会你

本文介绍了Java中Lambda表达式的作用和使用方法。Lambda表达式主要用于简化函数式接口的匿名内部类写法,使代码更简洁。文章通过数组排序示例展示了从匿名内部类到Lambda表达式的转换过程,并详细说明了Lambda表达式的标准格式和省略写法规则(包括参数类型、括号和语句体的省略)。同时解释了函数式接口的概念(仅含一个抽象方法的接口),强调Lambda表达式只能用于简化函数式接口的匿名内部类书写。最后指出Lambda表达式在开发中的重要性,特别是在与Stream流结合使用时能有效简化代码。

m0_70325779的博客 2168

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

训练整个数据集是epoch、把数据集分为多少小块就是batch,每个小块(batch)多少个数据就是batch_size,整个数据集需要训练多少轮是iteration

qq_42740834的博客 1610

Lambda表达式

Lambda表达式()->{} 实际上就是匿名内部类 比如getPig方法的参数就是一个接口 ,如果是匿名内部类就是 getPig(new Interfa(int a){ sout(“增加了”+a+“头猪”);//sout输出语句的简写 }; 如果用lambda表达式就是 getPig((int a)->{ sout(“增加了”+a+“头猪”);}); 如果用简写模式就是 getPig(a->sout(“增加了”+a+“头猪”); 重点 简写模式要求 1.参数类型可以省略,如果省略那

weixin_54170929的博客 254

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 301

2026.3.28:langgraph使用mysql进行持久化会话存储(短期记忆和长期记忆)

本文介绍了如何使用MySQL持久化存储LangGraph会话数据(短期和长期记忆)。首先安装必要的依赖包,然后通过Python代码实现将短期记忆写入MySQL数据库。主要步骤包括:1) 建立MySQL连接;2) 创建代理(agent)并配置检查点(checkpointer)和存储(store);3) 实现工具函数如计算器和天气查询;4) 使用中间件跟踪工具和模型调用次数。最后展示了如何从MySQL读取短期记忆数据,完成会话的持久化存储和检索功能。代码示例包含完整的实现细节,包括状态管理、消息处理和数据库操作

拥抱具身智能,昇腾Ascend C 735

Lambda

文章目录一. 简介二. 使用效果2.1 未使用 lambda 和 使用 lambda 的区别三. 基本语法四. 函数式接口 一. 简介 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码 像数据一样进行传递)。可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使 Java的语言表达能力得到了提升. 二. 使用效果 2.1 未使用 lambda ...

Gblfy_Blog 2726

RK3588 部署 YOLO26 目标检测:从环境搭建到 NPU 推理

采集图像(500+ 张,覆盖不同光照和角度)→ 筛选(删除模糊、无目标的图像)→ LabelImg 标注(选择 YOLO 格式)→ 划分 train:val:test = 7:2:1labelImg├── train/├── val/nc: 3类别顺序必须与 LabelImg 标注时一致。YOLO26 在 RK3588 上的部署流程是 PC 端训练 → ONNX 导出(opset=11)→ RKNN 转换(INT8 量化)→ 板端推理。

LXY_LOVE36的博客 418

Lambda 详解

Lambda 入门

qq_41506199的博客 1万+

C#实现低通和高通滤波算法

低通滤波器允许通过低于某个截止频率的信号成分,并且抑制高于该频率的成分。而高通滤波器则允许通过高于某个截止频率的信号成分,并抑制低于该频率的成分。巴特沃斯滤波器是一种对称的滤波器,具有平坦的幅度响应和最小的群延迟。低通和高通滤波是数字信号处理中常用的滤波技术,用于滤除或增强信号中的特定频率成分。在本篇文章中,我们将使用C#编程语言来实现低通和高通滤波算法。以上就是使用C#实现低通和高通滤波算法的示例代码。你可以根据自己的需求调整截止频率和采样率,将这些代码应用于你的项目中。是滤波器的截止频率,

XisVisual_Basic的博客 1274

GB 47955—2026 L2组合驾驶辅助强制国标全解、合规方案与工程代码落地

GB 47955—2026 L2辅助驾驶国标合规工程代码# 运行环境:Python3.8+,适配车载仿真、台架测试、算法验证场景# 依赖安装:pip install numpy dataclasses tqdm struct time json# ===================== 国标强制时序参数(完全对标GB 47955—2026) =====================HAND_OFF_FIRST_WARN = 5.0 # 手部脱离5s触发一级预警。

lin_xiu的博客 296

lambada 表达式 入门

Lambada 表达式 入门 简介 Lambada 表达式是什么? ​ 匿名函数(也叫 lambda表达式)是一个不与标识符绑定的函数。匿名函数通常是被传递给高阶函数的参数,或者用于构造需要返回函数的高阶函数的结果,在函数只使用一次,或者使用次数有限的情况下,匿名函数在语法上可能比使用命名函数更简介。 ​ 匿名函数在函数式编程和其他具有一级函数的语言中无处不在,在这些语言中,匿名函数对函数类型的作用与升序函数对其他数据类型的作用相同。 为什么使用 Lambada 表达式? 实现了函数式编程。所有新的基

LMAO的博客 783

C# WPS操作PPT,全屏,缩率图,备注,跳转播放

本文介绍了一个使用C#开发的PPT操作工具,主要功能包括检测当前打开的PPT文件、获取选中PPT路径、指定播放PPT、获取PPT页面序号和缩略图、提取备注内容等。文章展示了操作界面效果图,并重点解决了用户手动退出PPT后重新获取路径时报错的问题。核心代码实现了通过WPS API进行PPT文件的打开、全屏播放、页面跳转、获取当前页位置等功能,同时支持生成PPT缩略图预览和备注信息提取。当用户未通过工具按钮打开PPT时,程序会自动初始化PPT信息确保功能正常使用。

遇见--专栏 310

python filter lambda_Python零基础入门之八lambda的表达式和filter、map内置函数

1.Lambda表达式Lambda表达式语法是:lambda 参数:对参数进行的运算之所以引进Lambda的表达式主要是由于以下几点:(1)Python写一些执行脚本的时候,使用lanbda就可以省下定义函数的过程.(2)对于一些比较抽象的且整个程序的执行下来只需要调用一两次的函数,不需要为了命名的问题头疼.(3)简化代码的可读性,不需要调到函数的定义部分去阅读.注意在使用Lambda表达式时先将...

weixin_39956009的博客 88

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python入门基础篇 No.60 —— lambda表达式和匿名函数

Python入门基础篇 No.60 —— lambda表达式和匿名函数 文章目录Python入门基础篇 No.60 —— lambda表达式和匿名函数前言一、lambda 表达式和匿名函数总结 前生篇:参数的类型_可变参数_强制命名参数 前言 一、lambda 表达式和匿名函数 lambda 表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数的方法。lambda 函数实际生成了一个函数对象。 lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果

成长的Offer 440

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【基础】Lambda表达式的入门与进阶

Lambda 表达式 初识 Lambda 什么是 Lambda 表达式? 自 Java 8 增加的新特性 一个匿名方法(一个没有名字的方法,在定义变量的时候定义的方法) 为什么使用 Lambda ? 简洁实现接口对接; 虽然可以使用 Lambda 表达式对某些接口进行实现,但是并不是所有的接口都可以使用 Lambda 来实现; **实现要求:**要实现的抽象方法只能是一个; 在 Java 8 中对接口实现了一个新特性 default ,被此方法

Jim.kk的笔记 412

Lambda表达式基础知识入门

一、Lambda用法 之前写Optional这个类的时候,简单说了一下Lambda是怎么用的,这里再跟大家一起回顾一下,Lambda的语法是这样的: 语法 以Lambda语法创建线程和匿名内部类创建线程的区别(显然代码少了很多!): publicstaticvoidmain(String[]args){ //用匿名内部类的方式来创建线程 newThread(newRunnable(){ @Override publi...

一个天秤座的架构师 2万+

Java基础-lambda表达式简短入门

Java基础-lambda表达式入门 一、概述 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 Lambda表达式只能够运用在实现函数式接口中(只有一个方法的接口) 为什么要使用lambda表达式嘞? 避免内部类定义过多 让代码看起来更简洁 去掉一堆没有意义的代码,只留下核心逻辑 其语法格式如下: (parameters) -> expression 或 (parameters) -&gt

Zangjiji的博客 300

Kotlin语言基础入门到熟悉:Lambda 表达式

什么是 Lambda 表达式?Lambda 表达式,其实就是匿名函数。而函数其实就是功能(function),匿名函数,就是匿名的功能代码了。在 Kotlin 当中,函数也是作为类型的一种出现的,尽管在当前的版本中,函数类型的灵活性还不如 Python 这样的语言,不过它也是可以被赋值和传递的,这主要就体现在 Lambda...

weixin_40445576的博客 378

Lambda表达式入门--简介及基础语法

@[TOC] 一,什么是lambda表达式? JDK1.8开始支持lambda表达式,用起来让程序编写更加优雅 用lambda可以更加简洁的实现匿名内部类与函数的声明和调用 基于lambda提供stream流式处理极大的简化对集合的操作 二,与传统代码的对比 ...

好多可乐的博客 272

Java基础25--Lambda表达式入门

Java基础25–Lambda表达式 Java8于2014年3月14日发布,可以看成是自Java5以来最具革命性的版本。虽然有很多新的版本,但企业里还是用Java8比较多 Java5新特性: 1:可变参数... 2:枚举 3:注解 4:泛型 5:foreach ....... Java8新特性: 1:接口:默认方法和静态方法 2:日期时间API 3:Lambda

renVictory的博客 269

Java基础入门之——lambda表达式、方法引用

Lambda表达式

qq_53308984的博客 462

lambda 表达式基础语法-入门代码示例

1、 lambda 表达式的基础语法 描述:java8中引入了一个新的操作符号“ ->” 该操作符被称为箭头操作符 或 lambda操作符。 ->操作符将表达式分成两部分 左侧: 表达式的参数列表 右侧:表达式需要执行的功能 即lambda体 1.1、语法格式一 无参数,无返回值 /** * @author zhaoyihang * @date 2019/10/...

yihang250的博客 261

C#零基础入门篇(12.Lambda表达式的基础语法)

/ Action委托。// 带一个参数的Lambda表达式。// 输出 Hello, Lambda!- **表达式或代码块**:可以是一个简单的表达式,也可以是一个包含多条语句的代码块。- **参数列表**:可以为空(如`()`),也可以包含一个或多个参数。- **箭头符号**:`=>`,表示参数和表达式之间的映射。### 1. **Lambda表达式的基础语法**

think__deeply的博客 696

Java 基础入门 | 第二十章 Java Lambda 表达式

Lambda 表达式,Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 语法 lambda 表达式的语法格式如下: (parameters) ->{ statements; } parameters 为方法参数(可以是无也可以是多个);statements 为方法实现内容; 使用Labmda表达式需要函数式编程接口,比如在Runnable接口上我们可以看到@Funct

洛阳泰山的博客 1492

Python零基础入门之八lambda的表达式和filter、map内置函数

这篇博客主要是整理的lambda表达式和两个比较重要的内置函数的问题。 1.Lambda表达式 Lambda表达式语法是:lambda 参数:对参数进行的运算 之所以引进Lambda的表达式主要是由于以下几点: (1)Python写一些执行脚本的时候,使用lanbda就可以省下定义函数的过程. (2)对于一些比较抽象的且整个程序的执行下来只需要调用一两次的函数,不需要为了命名的问题头疼.

耀相惜 1279
上一篇: SpringBoot集成分页插件PageHelper
下一篇: Lambda表达式之方法引用
jothan_lee
博客等级 码龄9年 30粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值