尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
JAVA | Lambda表达式快速学习
什么是Lambda表达式Lambda 表达式也可称为闭包它是推动 Java 8 发布的最重要新特性。Lambda 是一个匿名函数,可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格使 Java的语言表达能力得到了提升。lambda 表达式的语法格式如下(parameters) - expression 或者 (parameters) -{ statements; } 以下是lambda表达式的重要特征: 可选类型声明不需要声明参数类型编译器可以统一识别参数值。 可选的参数圆括号一个参数无需定义圆括号但多个参数需要定义圆括号。 可选的大括号如果主体包含了一个语句就不需要使用大括号。 可选的返回关键字如果主体只有一个表达式返回值则编译器会自动返回值大括号需要指定明表达式返回了一个数值。Lambda 表达式的简单例子:// 1. 不需要参数,返回值为 5()-5// 2. 接收一个参数(数字类型),返回其2倍的值x-2*x// 3. 接受2个参数(数字),并返回他们的差值(x,y)-x – y// 4. 接收2个int型整数,返回他们的和(intx,inty)-xy// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)(String s)-System.out.print(s)Lambda表达式语法ComparatorIntegercomparator(x,y)-Integer.compare(x,y);Runnable runnable()-System.out.println(Lambda表达式);Lambda 表达式在Java 语言中引入了一个新的语法元 素和操作符。这个操作符为 “-” , 该操作符被称为 Lambda 操作符或剪头操作符。它将 Lambda 分为 两个部分:左侧:指定了 Lambda 表达式需要的所有参数右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能。lambda表达式语法可抽象表示为(Type1 param1, Type2 param2, ..., TypeN paramN) - { statment1; statment2; ... return statmentN; }以Predicate判断是否为成年人为例PredicatePersonpredicate(Person person)-{Integer ageperson.getAge();returnage18;};上面的lambda表达式语法抽象表示是比较官方的和我们平时所写的lambda表达式比起来要繁琐一些。别着急下面会一点一点地演示lambda表达式的简化过程。参数类型省略绝大多数情况编译器都可以从上下文环境中推断出lambda表达式的参数类型。这样lambda表达式就变成了(param1, param2, ..., paramN) - { statment1; statment2; ... return statmentN; }上面的例子也可简化为PredicatePersonpredicate(person)-{Integer ageperson.getAge();returnage18;};当lambda表达式的参数个数只有一个可以省略小括号。lambda表达式简写为param - { statment1; statment2; ... return statmentN; }对应的例子简化为PredicatePersonpredicateperson-{Integer ageperson.getAge();returnage18;};当lambda表达式只包含一条语句时可以省略大括号、return和语句结尾的分号。其他省就省了为啥return关键字也可以被省略呢原因是编译器会认为既然只有一个语句那么这个语句执行的结果就应该是返回值所以return也就不需要了。因此lambda表达式简化为param - statment;所以例子又可简化成PredicatePersonpredicateperson-person.getAge()18
RELATED

相关推荐

斐波那契数列的实现

斐波那契数列的实现

要实现斐波那契数列,首先先要了解什么是斐波那契数列 0 ,1,1,2,3,5,8,13… 1,1,2,3,5,8,13… 从0或1开始这样的…

📅 2026/8/6 5:15:00
ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南

ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南

ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为整理旅行照片时发现拍摄时间错乱而头疼?是否…

📅 2026/8/4 9:35:34
Ethereum智能合约静态分析(上)

Ethereum智能合约静态分析(上)

概述 目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急。本文主要讲解了如何通过对智能合约的静态分析进而发现智能合约中的…

📅 2026/8/3 22:22:28
MORE NEWS

更多资讯

📰

把视频剪辑变成打勾:AutoCut 批量字幕剪辑上手笔记

把视频剪辑变成打勾:AutoCut 批量字幕剪辑上手笔记 【免费下载链接】autocut 用文本编辑器剪视频 项目地址: https://gitcode.com/GitHub_Trending/au/autocut 文件夹里塞着 200 条录播视频,每条都要剪掉口水开场和段落间的长停顿,用剪…

📰

Redis Search 全文检索实战:从 ElasticSearch 迁移到内存索引的性能优化与落地指南

1. 从一次搜索延迟排查说起:为什么我开始关注 Redis Search去年帮一个做内容社区的朋友排查接口超时问题,他们的搜索服务用的是 ElasticSearch,数据量不算大,大概两千万条帖子索引。按理说这个量级 ES 应该轻松应对,但…

📰

Devin 引发替代讨论,AI 编程工具的 Base URL 改到 TaoToken 再验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

高效加载大规模 Keyspace:RedisDesktopManager(RESP.app)SCAN 限制、过滤器与命名空间键实战指南

高效加载大规模 Keyspace:RedisDesktopManager(RESP.app)SCAN 限制、过滤器与命名空间键实战指南 【免费下载链接】RedisDesktopManager RedisInsight/RedisDesktopManager: RedisDesktopManager 是一个用于 Redis 数据库管理的桌面应用程序&…

📰

深入解析 TanStack Table React 的 SubscribePropsWithStore:基于 table.store 的细粒度状态订阅

深入解析 TanStack Table React 的 SubscribePropsWithStore:基于 table.store 的细粒度状态订阅 【免费下载链接】table 🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table…

📰

BrewUI:给Homebrew装上可视化仪表盘,包管理不再依赖命令行

1. 这个项目到底解决了什么问题1.1 命令行很强大,但不是每个人都在享受它先聊个真实场景。用 macOS 做开发的朋友,几乎绕不开 Homebrew。装个 nginx 要brew install nginx,升级所有包要brew upgrade,想看看哪个软件占了多少磁盘空…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬