java学习之高级语法(十九)----- Lambda表达式

简介: java学习之高级语法(十九)----- Lambda表达式

函数式编程思想

面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情

函数式编程思想:只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程

Lambda 表达式

▶  体验Lambda的更优写法

image.gif编辑

输出:

       image.gif编辑

▶  Lambda 标准格式

Lambda标准格式由三部分组成:

一些参数 、一个箭头 、一段代码

格式: (参数列表)-> { 一些重写方法的代码 };

解释说明格式: ()---  接口中抽象方法的参数列表,没有参数就空着,有参数就写出参数,多个参数使用逗号分隔

                            -> --- 传递的意思,把参数传递给方法体

                            { } --- 重写接口的抽象方法的方法体

▶  练习:使用Lambda标准格式(无参无返回)

题目:给定一个厨子‘ Cook ’接口,内含唯一的抽象方法 makeFood ,且无参数,无返回值,如下

public interface Cook {
  void makeFood() ;
}

image.gif

在下面的代码中,使用Lambda的标准格式调用invokeCook方法,打印输出 “ 吃饭啦!” 字样

public class Demo03 {
  public static void main(String[] args) {
    // 在这里使用lambda的标准格式调用invokeCook方法
  }
  private static void invokeCook(Cook cook) {
    cook.makeFood();
  }
}

image.gif

解答:

image.gif编辑

image.gif编辑

▶  Lambda 的参数和返回值

需求:  使用数组存储多个Person对象,对数组中的Person对象使用Arrays的sort方法通过年龄进行升序排序

image.gif编辑

▶  练习:使用Lambda标准格式(有参有返回)

题目:给定一个计算器Calculator接口,内含抽象方法calc,可以将两个int数字相加得到和值

image.gif编辑

▶  Lambda省略格式

Lambda表达式是可推导,可以省略 ---  凡是根据上下文推导出来的内容,都可以省略书写

可以省略的内容:

(1)(参数列表):括号中参数列表的数据类型可以省略不写

(2)(参数列表):括号中的参数如果只有一个,那么类型和()都可以省略

(3)(一些代码):如果{ }中的代码只有一行,无论是否有返回值,都可以省略({ } ,return ,分号)

          注意:要省略 { } ,return ,分号必须一起省略

▶  Lambda的使用前提

Lambda的语法非常简洁,完全没有面向对象复杂的束缚,但是使用的时候需要注意:

(1)使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法

无论是JDK内置的Runnable、Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,才可以使用Lambda

(2)使用Lambda必须具有上下文推断

也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使用Lamda作为该接口的实例

备注:有且仅有一个抽象方法的接口,称为 “ 函数式接口 ”

相关文章
|
4天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
34 18
|
2天前
|
Java
Java 正则表达式高级用法
Java 中的正则表达式是强大的文本处理工具,用于搜索、匹配、替换和分割字符串。`java.util.regex` 包提供了 `Pattern` 和 `Matcher` 类来高效处理正则表达式。本文介绍了高级用法,包括使用 `Pattern` 和 `Matcher` 进行匹配、断言(如正向和负向前瞻/后顾)、捕获组与命名组、替换操作、分割字符串、修饰符(如忽略大小写和多行模式)及 Unicode 支持。通过这些功能,可以高效地处理复杂文本数据。
|
3天前
|
Java 程序员 API
Java中的Lambda表达式:简化代码的秘密武器
在Java 8中引入的Lambda表达式是一种强大的编程工具,它可以显著简化代码,提高可读性。本文将介绍Lambda表达式的基本概念、优势以及在实际开发中的应用。通过具体示例,您将了解如何使用Lambda表达式来简化集合操作、线程编程和函数式编程。让我们一起探索这一革命性的特性,看看它是如何改变Java编程方式的。
16 4
|
3天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码
【8月更文挑战第49天】在Java 8的发布中,Lambda表达式无疑是最令人兴奋的新特性之一。它不仅为Java开发者提供了一种更加简洁、灵活的编程方式,而且还极大地提高了代码的可读性和开发效率。本文将通过实际代码示例,展示如何利用Lambda表达式优化和重构Java代码,让你的编程之旅更加轻松愉快。
|
6天前
|
Java 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第14天】本文旨在揭示Java 8中引入的Lambda表达式如何革新了我们编写和管理代码的方式。通过简洁明了的语言和直观的代码示例,我们将一起走进Lambda表达式的世界,了解其基本概念、语法结构以及在实际编程中的应用。文章不仅会展示Lambda表达式的魅力所在,还会指导读者如何在日常工作中有效利用这一特性,以提高编码效率和程序可读性。
|
13天前
|
存储 Java 容器
Java 基础语法
Java是一种面向对象的编程语言,其基础语法包括类和对象、方法、变量、控制流语句、继承和多态以及异常处理。代码需写在类中,`main()`方法是程序入口,变量用于存储数据,控制流语句控制程序执行流程,继承和多态增强代码灵活性,异常处理保证程序稳定性。掌握这些知识可帮助您编写简单的Java程序。
|
12天前
|
并行计算 Java 开发者
探索Java中的Lambda表达式:简化代码,提升效率
Lambda表达式在Java 8中引入,旨在简化集合操作和并行计算。本文将通过浅显易懂的语言,带你了解Lambda表达式的基本概念、语法结构,并通过实例展示如何在Java项目中应用Lambda表达式来优化代码,提高开发效率。我们将一起探讨这一现代编程工具如何改变我们的Java编码方式,并思考它对程序设计哲学的影响。
|
22天前
|
Java API
Java 8新特性:Lambda表达式与Stream API的深度解析
【7月更文挑战第61天】本文将深入探讨Java 8中的两个重要特性:Lambda表达式和Stream API。我们将首先介绍Lambda表达式的基本概念和语法,然后详细解析Stream API的使用和优势。最后,我们将通过实例代码演示如何结合使用Lambda表达式和Stream API,以提高Java编程的效率和可读性。
|
1月前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
55 8
|
1月前
|
Java API
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的