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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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 开发必会的技能,掌握它可以让你的代码更加优雅。

相关文章
|
4月前
|
监控 安全 API
什么是API?进行API对接的5大常见误区!
API是软件间通信的桥梁,API对接则实现系统间数据互通。广泛应用于内外部系统集成,提升效率、降低成本、增强竞争力。本文详解其概念、场景、方法及常见误区。
什么是API?进行API对接的5大常见误区!
|
4月前
|
安全 NoSQL Java
SpringBoot接口安全:限流、重放攻击、签名机制分析
本文介绍如何在Spring Boot中实现API安全机制,涵盖签名验证、防重放攻击和限流三大核心。通过自定义注解与拦截器,结合Redis,构建轻量级、可扩展的安全防护方案,适用于B2B接口与系统集成。
727 3
|
4月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
4月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
375 2
|
4月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
268 19
|
4月前
|
XML 前端开发 决策智能
多智能体自主规划模式性能提升:五大精准策略详解
本文基于生产环境中的多智能体 React 模式实践,系统剖析了自主规划架构在工具调用延迟、上下文膨胀、中间态缺失、循环失控与监督缺位等方面的典型挑战。
683 19
|
4月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
4月前
|
JSON 监控 API
Shopee:对接海外仓API实现本地发货,优化物流时效
Shopee卖家可通过对接海外仓API实现本地发货,将物流时效从10-15天缩短至3-5天,显著提升买家体验与店铺转化率。本文详解API对接原理、步骤及代码示例,助力优化跨境物流效率。
239 1
|
4月前
|
人工智能 自然语言处理 搜索推荐
携多项成果亮相云栖大会,探索大模型在云通信中的创新应用与全球实践
2025云栖大会云通信分论坛聚焦大模型与云通信融合,阿里云发布智能联络中心2.0与Chat App AI助理,携手伙伴推动通信智能化升级。
421 1
|
4月前
|
消息中间件 监控 Cloud Native
100W QPS:亿级用户的社交关系如何设计?
当系统面临亿级用户、百万QPS时,如何避免卡顿与崩溃?本课程带你从零构建高性能测试体系,涵盖全链路压测、监控分析、微服务与云原生实战,掌握电商大促、直播社交等高并发场景应对能力,成为团队不可或缺的性能优化专家。

热门文章

最新文章