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

第十节第八部分:Lambda表达式、Lambda表达式的省略规则

Lambda表达式介绍

Lambda表达式

Lambda表达式Comparator接口的匿名形式

Lambda表达式Comparator接口的匿名形式

Lambda表达式简化setAll方法中匿名内部类

Lambda表达式简化setAll方法中匿名内部类

进一步简化Lambda表达式

进一步简化Lambda表达式

代码

代码一:认识Lambda表达式

package com.itheima.Lambda;public class LambdaTest1 {public static void main(String[] args) {//目标:认识Lambda表达式Animal a = new Animal() {@Overridepublic void run() {System.out.println("狗跑得贼快~~~");}};a.run();//注意:Lambda表达式并不是说能简化全部名内部类的写法,只能简化函数式接口的匿名内部类。//错误的代码!
//        Animal b = ()->{
//            System.out.println("狗跑得贼快~~~");
//        };
//        b.run();Swimming s1 = new Swimming() {@Overridepublic void swim() {System.out.println("学生游泳~~~");}};s1.swim();Swimming s2 =()->{System.out.println("学生游泳~~~");};s2.swim();}
}abstract class Animal{public abstract void run();
}interface Swimming{void swim();
}```![结果1](https://i-blog.csdnimg.cn/direct/53a1d1ddc8234885ae93226c1faf1031.png#pic_center)
## 代码二:使用Lambda简化函数式接口。```java
package com.itheima.Lambda;import com.itheima.Arrays.Student;import java.util.Arrays;
import java.util.Comparator;
import java.util.function.IntToDoubleFunction;public class LambdaTest2 {public static void main(String[] args) {// 目标:使用Lambda简化函数式接口。//案例一double[] prices = {100,300,200};//                  0   1   2//把所有的价格都打八折,然后又存进去。
//        Arrays.setAll(prices, new IntToDoubleFunction() {
//            @Override
//            public double applyAsDouble(int value) {
//                //value = 0  1  2
//                return prices[value] * 0.8;
//            }
//        });
//        Arrays.setAll(prices,(int value)->{ return prices[value] * 0.8;});//Arrays.setAll(prices,(value)->{ return prices[value] * 0.8;});//        Arrays.setAll(prices,value->{ return prices[value] * 0.8;});Arrays.setAll(prices,value-> prices[value] * 0.8);System.out.println(Arrays.toString(prices));//案例二Student[] students = new Student[3];students[0] = new Student("飞鸟马时",18,165);students[1] = new Student("枣伊吕波",17,155);students[2] = new Student("珈百璃",19,150);//        Arrays.sort(students, new Comparator<Student>() {
//            @Override
//            public int compare(Student o1, Student o2) {
//                return Double.compare(o2.getHeight(), o1.getHeight());//降序
//            }
//        });//        Arrays.sort(students, (Student o1, Student o2)-> {
//                return Double.compare(o2.getHeight(), o1.getHeight());//降序
//            }
//        );//        Arrays.sort(students, ( o1,  o2)-> {
//                    return Double.compare(o2.getHeight(), o1.getHeight());//降序
//                }
//        );Arrays.sort(students, ( o1,  o2)->Double.compare(o2.getHeight(), o1.getHeight()));System.out.println(Arrays.toString(students));}
}

结果2

http://www.xdnf.cn/news/8622.html

相关文章:

  • YOLOV11网络图和数据增强
  • PotPlayer 4K 本地万能影音播放器
  • 基于厚度变化的分割点定位算法:以瓶口颈部为例
  • 【分组背包 数论】P12160 [蓝桥杯 2025 省 Java B] 2 的幂|普及+
  • MySQL 第五讲---基础篇 表的约束
  • 每个元素后面加“、”,但最后一个元素不加
  • 点云处理的瑞士军刀PCL几何库
  • 基于Java(GUI)实现五子棋
  • 【AI】小参数,大影响:从OpenAI参数看AI开发挑战
  • Python打卡训练营学习记录Day34
  • 文章记单词 | 第104篇(六级)
  • MySQL --- 事务
  • 【Linux系列】EVS 与 VBD 的对比
  • 文章记单词 | 第103篇(六级)
  • 永磁同步电机参数辨识算法--拓展卡尔曼滤波参数辨识
  • 探索微观世界的“度量衡”:显微测量仪器解析
  • 《C++20新特性全解析:模块、协程与概念(Concepts)》
  • Python包管理器:uv
  • 目前,Navicat 17.1 版本的用户管理功能无法使用,如何回退到上一个版本?关于之前提到的转置功能?
  • Three.js 中的 Octree(八叉树)详解
  • android studio第一次编译apk,用时6分钟
  • 安装openEuler操作系统
  • 49页 @《人工智能生命体 新启点》中國龍 原创连载
  • ResNet、MobileNet、YOLOv3、DeepLabv3+ 比较
  • 数据库表设计题目
  • OpenCV CUDA 模块图像过滤------创建一个线性滤波器(Linear Filter)函数createLinearFilter()
  • 【Golang笔记03】error、panic、fatal错误处理学习笔记
  • Mysql逻辑架构
  • leetcode-hot-100 (普通数组)
  • 数据结构(6)线性表-队列