Lambda表达式和steram流
创始人
2024-06-01 12:51:17
0

目录

引言:

语法:

 Lambda 表达式实例:

demo演示:

 Stream流:


引言:

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

使用 Lambda 表达式可以使代码变的更加简洁紧凑。

语法:

lambda 表达式的语法格式如下:

(parameters) -> expression
或
(parameters) ->{ statements; }

以下是lambda表达式的重要特征:

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

 Lambda 表达式实例:

// 1. 不需要参数,返回值为 5  
() -> 5  // 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  // 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  // 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

demo演示:

 public static void main(String args[]){Java8Tester tester = new Java8Tester();// 类型声明MathOperation addition = (int a, int b) -> a + b;// 不用类型声明MathOperation subtraction = (a, b) -> a - b;// 大括号中的返回语句MathOperation multiplication = (int a, int b) -> { return a * b; };// 没有大括号及返回语句MathOperation division = (int a, int b) -> a / b;System.out.println("10 + 5 = " + tester.operate(10, 5, addition));System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));System.out.println("10 / 5 = " + tester.operate(10, 5, division));// 不用括号GreetingService greetService1 = message ->System.out.println("Hello " + message);// 用括号GreetingService greetService2 = (message) ->System.out.println("Hello " + message);greetService1.sayMessage("Runoob");greetService2.sayMessage("Google");}interface MathOperation {int operation(int a, int b);}interface GreetingService {void sayMessage(String message);}private int operate(int a, int b, MathOperation mathOperation){return mathOperation.operation(a, b);}

 输出结果:

 

使用 Lambda 表达式需要注意以下两点:

  • Lambda 表达式主要用来定义行内执行的方法类型接口(例如,一个简单方法接口)。在上面例子中,我们使用各种类型的 Lambda 表达式来定义 MathOperation 接口的方法,然后我们定义了 operation 的执行。

  • Lambda 表达式免去了使用匿名方法的麻烦,并且给予 Java 简单但是强大的函数化的编程能力。


 Stream流:

之前总结过,点下链接查看:

 stream流_别活在过去i的博客-CSDN博客

相关内容

热门资讯

鲅鱼圈门禁系统安装图,鲅鱼圈门... 鲅鱼圈门禁系统安装图详解一、门禁系统概述门禁系统是一种用于控制出入口通道的电子设备,它通过识别卡片、...
安装新风系统很费电,安装新风系... 安装新风系统,真的那么费电吗?随着人们对室内空气质量要求的提高,新风系统逐渐成为家庭装修的标配。然而...
安卓虚拟系统安装方法,安卓虚拟... 安卓虚拟系统安装方法详解随着智能手机的普及,安卓系统已经成为全球最受欢迎的操作系统之一。对于一些开发...
北京断桥系统门窗安装,断桥系统... 北京断桥系统门窗安装:品质生活从一扇窗开始随着人们生活水平的提高,对于家居环境的要求也越来越高。断桥...
安装系统组件前检查,安装系统组... 安装系统组件前检查的重要性在安装任何系统组件之前,进行彻底的检查是确保系统正常运行和延长设备寿命的关...
安装智能家居系统教程,智能家居... 智能家居系统安装教程一、准备工作在开始安装智能家居系统之前,我们需要做好以下准备工作: 1. 确定...
庆阳收费停车系统安装,庆阳市智... 庆阳市智慧城市建设新篇章——收费停车系统安装全面启动随着我国城市化进程的加快,城市交通拥堵和停车难问...
安卓系统快速安装失败,安卓系统... 安卓系统快速安装失败的原因及解决方法随着智能手机的普及,安卓系统因其开放性和丰富的应用生态而受到广大...
清华同方安装新系统,清华同方电... 清华同方电脑安装新系统的详细教程一、准备工作在开始安装新系统之前,请确保您已经做好了以下准备工作: ...
暗卫单独安装新风系统,暗卫单独... 暗卫单独安装新风系统,打造清新健康家居环境随着生活水平的提高,人们对居住环境的要求也越来越高。暗卫作...
安装系统指导失败,常见问题及解... 安装系统指导失败:常见问题及解决方案在电脑使用过程中,系统安装是一个基础且重要的环节。然而,许多用户...
安卓安装方法苹果系统,实现跨平... 安卓手机安装苹果系统:实现跨平台体验的攻略一、安卓手机安装苹果系统的可行性分析首先,我们需要明确一点...
安装自动瞄准系统,自动瞄准系统... 自动瞄准系统在现代军事装备中的应用与优势一、自动瞄准系统的原理自动瞄准系统是一种利用光学、电子、计算...
宝骏车机系统安装,轻松升级您的... 宝骏车机系统安装指南:轻松升级您的爱车智能体验一、了解宝骏车机系统宝骏车机系统是基于Android操...
北斗系统安装价格高吗,性价比与... 北斗系统安装价格解析:性价比与适用性分析随着我国北斗卫星导航系统的不断完善和普及,越来越多的企业和个...
霸州车间排风系统安装,打造高效... 霸州车间排风系统安装:打造高效环保的生产环境随着工业生产的不断发展,车间环境对生产效率和员工健康的影...
保利新风系统安装方法,保利新风... 保利新风系统安装方法详解随着人们对室内空气质量要求的提高,新风系统已经成为现代家居不可或缺的一部分。...
安装最新mac系统,轻松安装最... Mac系统升级指南:轻松安装最新MacOS一、检查系统兼容性在开始升级之前,首先需要确认您的Mac电...
奥特曼怎么安装武器系统,奥特曼... 奥特曼如何安装武器系统奥特曼,作为宇宙英雄,其强大的武器系统是其战胜邪恶势力的关键。本文将详细介绍奥...
区级战队怎么安装系统,全面指南 区级战队如何安装系统:全面指南随着电子竞技的蓬勃发展,王者荣耀区级战队在比赛中展现出了强大的团队协作...