Java工程师必知词汇:Lambda表达式

简介: Lambda表达式,也可称为闭包,它是推动Java8发布的最重要新特性。Lambda允许把函数作为一个方法的参数,它实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法。

|名词定义|

Lambda表达式,也可称为闭包,它是推动Java8发布的最重要新特性。Lambda允许把函数作为一个方法的参数,它实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法。

Lambda表达式的语法格式如下:
(parameters) -> expression

(parameters) ->{ statements; }

|特征|

  1. 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  2. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  3. 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  4. 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
    |Lambda表达式规约|
  5. lambda表达式的参数可以通过上下文推断,如果需要显示声明一个参数的类型,则必须为所有的参数声明类型。
  6. lambda表达式中抛出的异常需要与目标函数式接口的抽象方法抛出的异常类型兼容。
  7. lambda表达式中的参数类型需要与目标函数式接口中抽象方法的参数类型兼容。

|Lambda表达式简单示例|

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

|常见操作|

  1. 用lambda表达式实现Runnable
  2. 用lambda表达式进行事件处理
  3. 用lambda表达式对列表进行迭代
  4. 结合函数式接口Predicate使用lambda表达式
  5. 在Map和Reduce中使用lambda表达式
  6. 通过过滤创建String列表
  7. 对列表的每个元素应用函数
  8. 复制不同的值,创建一个子列表
  9. 计算集合元素的各种数值数据

|参考资料|

[1] https://www.cnblogs.com/gu-bin/p/11225749.html
[2] https://www.runoob.com/java/java8-lambda-expressions.html
[3] https://www.cnblogs.com/coprince/p/8692972.html

相关文章
|
17小时前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的深度解析
【5月更文挑战第12天】本文将深入探讨Java 8中的两个重要新特性:Lambda表达式和Stream API。我们将从基本概念入手,逐步深入到实际应用场景,帮助读者更好地理解和掌握这两个新特性,提高Java编程效率。
9 2
|
1天前
|
算法 安全 Java
Java表达式和规则引擎的比较与考量
Java表达式和规则引擎的比较与考量
|
2天前
|
Java
探索Java世界的奇妙工具——运算符与表达式运算符
探索Java世界的奇妙工具——运算符与表达式运算符
5 0
|
2天前
|
Java
【JAVA进阶篇教学】第二篇:JDK8中Lambda表达式
【JAVA进阶篇教学】第二篇:JDK8中Lambda表达式
|
5天前
|
Java
Java一分钟之运算符与表达式初探
【5月更文挑战第7天】本文介绍了Java中的主要运算符,包括算术、比较、逻辑、位、赋值和条件运算符。讨论了类型转换、运算顺序和逻辑短路等常见问题,并提供了避免错误的建议。通过代码示例展示了运算符的使用,强调理解运算符对于编写高效Java代码的重要性。
20 0
Java一分钟之运算符与表达式初探
|
5天前
|
分布式计算 Java API
Java8 Lambda实现源码解析
Java8的lambda应该大家都比较熟悉了,本文主要从源码层面探讨一下lambda的设计和实现。
|
7天前
|
安全 Java 程序员
Java 8新特性之Lambda表达式
【5月更文挑战第5天】 本文将介绍Java 8中的一个重要新特性——Lambda表达式。Lambda表达式是Java 8引入的一种简洁、易读的函数式编程语法,它允许我们将函数作为参数传递给方法,或者作为返回值。通过使用Lambda表达式,我们可以编写更简洁、更易读的代码,提高开发效率。
|
11天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【5月更文挑战第1天】本文将介绍Java 8中的两个重要特性:Lambda表达式和Stream API。Lambda表达式是一种新的函数式编程语法,可以简化代码并提高可读性。Stream API是一种用于处理集合的新工具,可以方便地进行数据操作和转换。通过结合Lambda表达式和Stream API,我们可以更加简洁高效地编写Java代码。
|
12天前
|
Java
java lambda 表达式中的双冒号和箭头的用法
java lambda 表达式中的双冒号和箭头的用法
|
16天前
|
Java 编译器 API
Java基础教程(17)-Java8中的lambda表达式和Stream、Optional
【4月更文挑战第17天】Lambda表达式是Java 8引入的函数式编程特性,允许函数作为参数或返回值。它有简洁的语法:`(parameters) -> expression 或 (parameters) ->{ statements; }`。FunctionalInterface注解用于标记单方法接口,可以用Lambda替换。