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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
EMR Serverless StarRocks,5000CU*H 48000GB*H
云数据库 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 开发必会的技能,掌握它可以让你的代码更加优雅。

相关文章
|
21天前
|
监控 安全 API
什么是API?进行API对接的5大常见误区!
API是软件间通信的桥梁,API对接则实现系统间数据互通。广泛应用于内外部系统集成,提升效率、降低成本、增强竞争力。本文详解其概念、场景、方法及常见误区。
什么是API?进行API对接的5大常见误区!
|
21天前
|
安全 NoSQL Java
SpringBoot接口安全:限流、重放攻击、签名机制分析
本文介绍如何在Spring Boot中实现API安全机制,涵盖签名验证、防重放攻击和限流三大核心。通过自定义注解与拦截器,结合Redis,构建轻量级、可扩展的安全防护方案,适用于B2B接口与系统集成。
286 3
|
1月前
|
XML 前端开发 决策智能
多智能体自主规划模式性能提升:五大精准策略详解
本文基于生产环境中的多智能体 React 模式实践,系统剖析了自主规划架构在工具调用延迟、上下文膨胀、中间态缺失、循环失控与监督缺位等方面的典型挑战。
318 19
|
21天前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
144 2
|
19天前
|
Python
Python的简洁之道:5个让代码更优雅的技巧
Python的简洁之道:5个让代码更优雅的技巧
174 104
|
19天前
|
JavaScript Java 大数据
基于springboot的美食文化和旅游推广系统
本研究聚焦美食文化与旅游推广系统的融合,探讨如何借助Java、Vue.js等技术构建数字化平台,整合地域美食资源与旅游产业,推动文化传承与经济协同发展。
|
23天前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
286 35

热门文章

最新文章