从零开始学 Lambda:用最简单的例子理解函数式编程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Lambda表达式是Java 8引入的匿名函数,可简洁地表示可传递的行为。它语法简练,支持函数式编程,常用于替代接口实现,并可结合方法引用使代码更优雅。

1. 什么是 Lambda 表达式?

Lambda 表达式,也叫匿名函数,是 Java 8 引入的一种函数式编程写法。
它允许我们用更简洁的方式表示一个可以传递的行为,而不必像以前那样定义一个完整的类或方法。

特点:

  • 轻量级:不需要单独写实现类
  • 可以作为参数传递
  • 让代码更简洁

2. Lambda 的基本语法

Lambda 的语法格式如下:

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

如果方法体只有一条语句,可以省略大括号 {}return

(参数列表) -> 表达式

3. 简单例子

假设我们有一个字符串列表,想要打印每个字符串:

import java.util.Arrays;
import java.util.List;

public class LambdaExample {
   
    public static void main(String[] args) {
   
        List<String> list = Arrays.asList("Java", "Python", "C++");

        // 使用 Lambda 打印每个元素
        list.forEach(s -> System.out.println(s));
    }
}

运行结果:

Java
Python
C++

解释:s -> System.out.println(s) 是一个 Lambda 表达式,相当于给 forEach 提供了一个“执行行为”。


4. Lambda 与方法引用

如果 Lambda 体仅仅调用一个已有方法,可以使用 方法引用(Method Reference):

list.forEach(System.out::println);

效果与 Lambda 相同,但代码更简洁。


5. 带返回值的 Lambda

假设我们想计算两个整数的和,可以写一个 Lambda 表达式:

interface Calculator {
   
    int calc(int a, int b);
}

public class LambdaReturn {
   
    public static void main(String[] args) {
   
        Calculator sum = (a, b) -> a + b;
        System.out.println(sum.calc(5, 3)); // 输出 8
    }
}

Lambda 表达式 (a, b) -> a + b 实现了 Calculator 接口的 calc 方法。


6. 小结

  1. Lambda 是 Java 8 引入的匿名函数写法
  2. 用法简单,代码更简洁
  3. 可以结合方法引用进一步优化代码
  4. 可作为参数传递,实现函数式编程思想

7. 练习

  1. 使用 Lambda 打印一个整数列表的每个元素
  2. 用 Lambda 实现一个接口,计算两个数的乘积
  3. 尝试把 Lambda 替换为方法引用

作者提示:
Lambda 是现代 Java 开发必会的技能,掌握它可以让你的代码更加优雅。

相关文章
|
2月前
|
监控 安全 API
什么是API?进行API对接的5大常见误区!
API是软件间通信的桥梁,API对接则实现系统间数据互通。广泛应用于内外部系统集成,提升效率、降低成本、增强竞争力。本文详解其概念、场景、方法及常见误区。
什么是API?进行API对接的5大常见误区!
|
2月前
|
安全 NoSQL Java
SpringBoot接口安全:限流、重放攻击、签名机制分析
本文介绍如何在Spring Boot中实现API安全机制,涵盖签名验证、防重放攻击和限流三大核心。通过自定义注解与拦截器,结合Redis,构建轻量级、可扩展的安全防护方案,适用于B2B接口与系统集成。
409 3
|
2月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
2月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
199 2
|
2月前
|
XML 前端开发 决策智能
多智能体自主规划模式性能提升:五大精准策略详解
本文基于生产环境中的多智能体 React 模式实践,系统剖析了自主规划架构在工具调用延迟、上下文膨胀、中间态缺失、循环失控与监督缺位等方面的典型挑战。
398 19
|
2月前
|
数据采集 SQL 分布式计算
数据清洗,必须掌握的5大解决方案+4大步骤
数据模型出错、报表对不上?根源常在于数据清洗。本文系统解析数据清洗的应用场景、核心步骤与常见痛点,并介绍如何通过FineDataLink等工具实现高效自动化清洗,将杂乱原始数据转化为高质量分析基石,提升数据可靠性与分析效率。
数据清洗,必须掌握的5大解决方案+4大步骤
|
2月前
|
存储 人工智能 前端开发
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析了17种AI智能体设计模式,涵盖反思、工具调用、多智能体协作、思维树、规划执行、集成决策等核心架构,结合LangGraph实现与代码演示,揭示如何通过模式组合构建高效、可靠的大规模AI系统。
385 2
|
2月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
211 3
|
2月前
|
人工智能 自然语言处理 搜索推荐
携多项成果亮相云栖大会,探索大模型在云通信中的创新应用与全球实践
2025云栖大会云通信分论坛聚焦大模型与云通信融合,阿里云发布智能联络中心2.0与Chat App AI助理,携手伙伴推动通信智能化升级。
235 1
|
2月前
|
JSON 监控 API
Shopee:对接海外仓API实现本地发货,优化物流时效
Shopee卖家可通过对接海外仓API实现本地发货,将物流时效从10-15天缩短至3-5天,显著提升买家体验与店铺转化率。本文详解API对接原理、步骤及代码示例,助力优化跨境物流效率。
119 1

热门文章

最新文章