当前位置: 首页 > news >正文

Java 中 Lambda 表达式的使用

目录

一、Lambda 表达式的概念

二、Lambda 表达式的语法格式   

三、Lambda 表达式的案例使用

  1、使用 Lambda 来实现启动线程

 2、使用 Lambda 表达式实现集合的排序

3、使用 Lambda 表达式实现文件夹下的文件查找


一、Lambda 表达式的概念

       Lambda 表达式是特殊的匿名内部类, 它是把函数作为一个方法的参数(函数作为方法参数传递),将代码像数据 一样传递。

二、Lambda 表达式的语法格式   

lambda 表达式分为三部分 : () -> {}
        () 表示接口种方法的形参, 根据参数类型去匹配接口中的方法来进行方法的实现。
        ->  表示 箭头操作符,分隔参数列表和方法体
        {} 表示方法体
                使用lambda表示的注意事项
                        1、形参的类型可以推断,所以可以省略
                        2、如果方法的参数只有一个,()可以省略
                        3、如果参数列表为空,必须要写上()、
                        4、如果方法体中只有一行代码,大括号、分号、可以省,
                              如果有返回return也可以省 。但是要一起省
                        5、lambda表达式不会生成 class 文件

三、Lambda 表达式的案例使用

  1、使用 Lambda 来实现启动线程

//不使用 Lambda 表达式的写法new Thread(//以下是匿名内部类的实现new Runnable() {@Overridepublic void run() {System.out.println("匿名内部类启动线程。。。");}}).start();// 使用 Lambda 表达式进行简化new Thread(() -> {System.out.println("匿名内部类启动线程。。。");}).start();// 最简版,因为方法体中只有一行代码,可以省略掉大括号和语句后面的分号new Thread(() -> System.out.println("匿名内部类启动线程。。。")).start();

 2、使用 Lambda 表达式实现集合的排序

        List<Integer> list = new ArrayList<>();//不使用 Lambda 表达式的写法Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {// 升序排列return o1 - o2;}});// 使用 Lambda 表达式进行简化Collections.sort(list, (Integer o1, Integer o2) -> {return o1 - o2;});/*最简版,因为形参的类型可以进行推断,所以形参类型可以省略,方法体中只有一行代码,可以省略掉大括号和语句后面的分号*/Collections.sort(list, (o1, o2) -> o1 - o2);

3、使用 Lambda 表达式实现文件夹下的文件查找

        //指定文件夹File file = new File("D:\\bbb");if(!file.exists()){//如果文件夹不存在则进行创建file.mkdir();//给文件夹中添加新的文件,getAbsolutePath 通过绝对路径new File(file.getAbsolutePath()+"a.Java").createNewFile();//getPath 通过相对路径,创建文件new File(file.getPath()+"b.Java").createNewFile();}//查找文件夹中的符合要求的文件File[] files = file.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return pathname.getName().endsWith(".Java");}});System.out.println(files.length);for (File f : files) {System.out.println(f.getName());}// 使用 Lambda 表达式进行简化file.listFiles((p) -> {return p.getName().endsWith(".Java");});//最简版,只有一个参数不需要 ()file.listFiles(p -> p.getName().endsWith(".Java"));
http://www.lryc.cn/news/268152.html

相关文章:

  • 【IO】IO模型与零拷贝
  • 鸿蒙 - arkTs:状态管理
  • YOLOv5-Lite 树莓派4B 15帧教程
  • 2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序
  • 设计模式-注册模式
  • css 美化滚动条样式
  • 视频压缩不影响画质简单方法,一分钟搞定!
  • Zookeeper的使用场景
  • Java 面试题集锦记录
  • 【自然语言处理】第2部分:识别文本中的个人身份信息
  • C#中的.NET与.NET Framework区别
  • 详解Keras3.0 Layer API: LSTM layer
  • Vue和React的运行时,校验引入包的上下文差异
  • C语言中函数调用和嵌套
  • JVM基础篇---02
  • HTML网站基础
  • 最优化考试之惩罚函数外点法
  • JavaScript 数组【详解】
  • Node.js版本对比
  • 人工智能:网络犯罪分子的驱动力
  • ASP.NET Core认证原理和实现
  • 基于OpenCV的图像颜色与形状识别的原理2
  • 无法获取前置摄像头的预览图像?【Bug已解决-鸿蒙开发】
  • 微信小程序的bindtap和catchtap的区别
  • python哈希算法实现
  • SpringBoot实用开发(三)-- Redis提供API接口 -- StringRedisTemplate
  • 【Qt-编码】
  • 使用Python实现Linux惠尔顿上网认证客户端
  • 【漏洞复现】某检测系统(admintool)接口任意文件上传漏洞
  • 检测如下MHA运行条件【踩坑记录】