package com.debuggg.java.exer3;import org.junit.Test;import java.util.Comparator;
import java.util.function.Consumer;/*** 作者 ZYL* 功能描述 : Lambada表达式的使用**  1.举例:(o1,o2) -> Integer.compare(o1,o2)*  2.格式:*    -> : lambda操作符 或者叫做  箭头操作符*    -> 左边: lambda的形参列表(其实 就是接口中的抽象方法的形参列表)*    -> 右边: lambda体(其实就是重写的抽象方法的方法体)**  3.Lambda表达式的使用:(分为6种情况的介绍)*      总结:*      ->左边:lambda形参列表的参数类型可以省略(类型推断),如果lambda形参列表只有一个参数,其一对()可以省略,*      ->右边:lambda体应该使用一对大括号包裹,如果Lambda体只有一条执行语句(可能是return语句),省略这有对{},此时return也需要省略**  4.Lambda表达式的本质:作为函数式接口的实例*      要求:接口只有一个抽象方法,**  5.如果一个接口中,只声明了一个抽象方法,则这个接口就叫函数式接口:例如:Comparator,Runnable,*  我们可以在一个接口上使用@FunctionalInterface注解,这样做可以检查它是否是一个函数式接口**  6.以前使用匿名实现类表示的现在都可以用Lambda表达式来写。** 日期 2020-03-01 12:40* 参数 null* 返回值*/
public class LambdaTest1 {/*** 作者 ZYL* 功能描述 : 语法格式1: 无参,无返回值* 日期 2020-03-01 12:43* 参数 null* 返回值*/@Testpublic void test1(){Runnable runnable = new Runnable() {@Overridepublic void run() {System.out.println("我是中国人!");}};runnable.run();//改为lambda方式的写法Runnable runnable1 = () -> {System.out.println("我是中国人的Lambda!");};runnable1.run();}/*** 作者 ZYL* 功能描述 : 语法格式二:Lambda需要一个参数,但是没有返回值* 日期 2020-03-01 12:47  * 参数 null* 返回值*/@Testpublic void test2(){Consumer<String> consumer = new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}};consumer.accept("我是中国人的第二种,一个参数没有返回值");System.out.println("*************************************************************");Consumer<String> consumer1 = (String s) -> {System.out.println(s);};consumer1.accept("我是中国人的第二种,一个参数没有返回值,Lambda");}/*** 作者 ZYL* 功能描述 : 数据类型可以省略,因为可由编译器推断得出,成为"类型推断"* 日期 2020-03-01 12:54  * 参数 * 返回值 void*/@Testpublic void test3(){Consumer<String> consumer1 = (String s) -> {System.out.println(s);};consumer1.accept("我是中国人的第二种,一个参数没有返回值,Lambda");System.out.println("*************************************************************");Consumer<String> consumer = (s) -> {System.out.println(s);};consumer.accept("数据类型可以省略,因为可由编译器推断得出,成为\"类型推断\"");}/*** 作者 ZYL* 功能描述 : 语法格式4,Lambda若只需要一个参数时,参数的小括号可以省略* 日期 2020-03-01 12:57* 参数 * 返回值 void*/@Testpublic void test4(){Consumer<String> consumer = (s) -> {System.out.println(s);};consumer.accept("数据类型可以省略,因为可由编译器推断得出,成为\"类型推断\"");System.out.println("*************************************************************");Consumer<String> consumer1 = s -> {System.out.println(s);};consumer1.accept("语法格式4,Lambda若只需要一个参数时,参数的小括号可以省略");}/*** 作者 ZYL* 功能描述 : 语法格式5: Lambda需要2个或以上的参数,多条执行语句,并且可以有返回值* 日期 2020-03-01 12:58* 参数 null* 返回值*/@Testpublic void test5(){Comparator<Integer> com1 = new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {System.out.println(o1);System.out.println(o2);return o1.compareTo(o2);}};System.out.println(com1.compare(12,21));System.out.println("******************************");Comparator<Integer> com2 = (o1,o2) -> {System.out.println(o1);System.out.println(o2);return o1.compareTo(o2);};System.out.println(com2.compare(12,21));}/*** 作者 ZYL* 功能描述 : 语法格式六:当Lambda体只有一条语句时,return与大括号若有,都可以省略* 日期 2020-03-01 13:03* 参数 null* 返回值*/@Testpublic void test(){Comparator<Integer> com = (o1,o2) -> {return o1.compareTo(o2);};System.out.println(com.compare(12,21));System.out.println("******************************");Comparator<Integer> com2 = (o1,o2) -> o1.compareTo(o2);System.out.println(com2.compare(12,21));}}

Lambda表达式示例代码相关推荐

  1. Lambda表达式常用代码示例

    Lambda表达式常用代码示例 2017-10-24 目录 1 Lambda表达式是什么 2 Lambda表达式语法 3 函数式接口是什么   3.1 常用函数式接口 4 Lambdas和Stream ...

  2. 100天精通Python(基础篇)——第26天:lambda表达式基础+代码实战

    文章目录 一.lambda函数介绍 二.lambda函数与 def 函数的区别 三.lambda函数案例 3.1 定义加法函数 3.2 使用if判断奇偶性 3.3 无参数表达式 3.4 列表排序 3. ...

  3. 10个Java 8 Lambda表达式经典示例

    Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表 达式,它将允许我们将行为传到函数里.在J ...

  4. java 拉姆表达式_Java8 lambda表达式10个示例

    Java 8 lambda表达式示例 转自importNew 原文链接 例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现R ...

  5. 【Kotlin】Lambda 表达式 ( 简介 | 表达式语法 | 表达式类型 | 表达式返回值 | 调用方式 | 完整示例 )

    文章目录 I . Lambda 表达式 简介 II . Lambda 表达式语法 III . Lambda 表达式类型 IV . Lambda 表达式返回值 V . Lambda 表达式调用 VI . ...

  6. 【Java 进阶】匿名类(代码传递、回调、过滤器)、Lambda表达式(方法引用)、函数式接口(Supplier、Consumer、Predicate、Function)

    匿名类 匿名类(Anonymous Class) 匿名类的使用注意 匿名类 - 代码传递 - 测试代码运行时间的工具类 匿名类 - 回调 - 简易网络请求 匿名类 - 过滤器 - 获取目录下的所有文件 ...

  7. Java 8 Lambda表达式10个示例【存】

    PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是 ...

  8. Java8 Lambda表达式语法和示例

    本文是对官方文档(https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)的概括总结,更详细的内容请看官方 ...

  9. lambda表达式函数接口_函数Lambda表达式中UnaryOperator的示例

    lambda表达式函数接口 Java 8 Lambda表达式的实现需要介绍一些具有深奥名称的新接口,这些接口可能会对没有任何函数式编程经验的开发人员造成一定的威胁. 功能性UnaryOperator接 ...

最新文章

  1. 玉山银行的一名新员工“玉山小i随身金融顾问”
  2. CATransform3DRotate 实现左右,上下翻转效果
  3. 用神经网络分类奇数和偶数
  4. 0820-拼多多二面
  5. python3 类的相关内容
  6. Server.ScriptTimeOut,Response.IsClientConnected
  7. 微信小程序 - 关于下拉刷新
  8. GB28181协议RTP传输
  9. icem搅拌器网格划分_搅拌器研究所的第六个开放电影项目
  10. 云计算机根据部署,华为云计算FusionCompute环境部署实验之使用批量部署工具安装...
  11. axure sketch 对比_Sketch 画原型比 Axure 好用吗?为什么
  12. 使用Python与Sharepoint进行交互——第1部分
  13. matplotlib 均值_matplotlib可视化箱线图
  14. 计算机网络原理学习资源——相关书籍推荐
  15. SQL Server 安全认证知识【1】
  16. 模型评价 - 回归模型的常用评价指标
  17. 【思维】前苏联的太空人使用的铅笔…
  18. 富怡CAD计算机在哪,富怡CAD软件如何与富怡数字化仪进行连接
  19. 支持服务器系统什么意思,服务器系统支持
  20. JAVA计算机毕业设计智慧社区信息管理系统开发Mybatis+源码+数据库+lw文档+系统+调试部署

热门文章

  1. 怎么创建数据表的实体类和业务类_SSM搭建二手市场交易平台(二):数据表设计...
  2. RoterOS负载均衡教程
  3. Java基础学习总结(48)——Java 文档注释
  4. java jar命令_Java命令行之jar命令
  5. 从C# 3.0到F#
  6. jQuery文档操作之删除操作
  7. 《工业控制网络安全技术与实践》一2.2 分布式控制系统
  8. Android 开发之ViewPage官方文档学习笔记
  9. Scala的函数式编程
  10. Android和iOS智能机去年出货超7亿 同比增长46%