Lambda表达式第二版

1、Lambda概述

  • Lambda表达式是JDK8开始后的一种新语法形式
  • 作用:简化匿名内部类的代码写法
  • 注意:Lambda表达式只能简化函数式 接口 的匿名内部类的写法形式

1.1、什么是函数式接口?

  • 首先必须是接口、其次接口中有且仅有一个抽象方法的形式
  • 通常我们会在接口上加上一个@FunctionalInterface注解,标记该接口必须是满足函数式接口
java 复制代码
package com.lambda;

public class LambdaDemo1 {

    public static void main(String[] args) {

       /* Swimming s1 = new Swimming() {

            @Override
            public void swim() {
                System.out.println("老师游泳贼溜~~~~");
            }
        };

        go(s1);*/

       /* Swimming s1 = () -> {
            System.out.println("老师游泳贼溜~~~~");
        };

        go(s1);*/

        /*go(new Swimming() {
            @Override
            public void swim() {
                System.out.println("老师游泳贼溜~~~~");
            }
        });*/

        go(() -> {
            System.out.println("老师游泳贼溜~~~~");
        });


    }

    public static void go(Swimming s) {
        System.out.println("开始。。。");

        s.swim();

        System.out.println("结束。。。");
    }
}

@FunctionalInterface
interface Swimming {
    public abstract void swim();
}

2、Lambda实战-简化常见函数式接口

java 复制代码
package com.lambda;

import java.util.Arrays;

public class LambdaDemo2 {
    public static void main(String[] args) {


        Integer[] ages1 = {34, 12, 42, 23};

//        Arrays.sort(ages1, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2 - o1;//降序
//            }
//        });

//        Arrays.sort(ages1, (Integer o1, Integer o2) -> {
//            return o2 - o1;
//        });

        Arrays.sort(ages1, (o1, o2) -> o2 - o1);


        System.out.println(Arrays.toString(ages1));//[42, 34, 23, 12]

    }
}
相关推荐
日月星辰Ace1 分钟前
JDK 工具学习系列(二):jar 命令实用教程与常见问题
java
九转成圣6 分钟前
JWT 全面解析与 Spring Boot 实战教程
java·spring boot·后端
国服第二切图仔9 分钟前
Rust开发之使用match和if let处理Result错误
开发语言·网络·rust
2501_9387739917 分钟前
从字节码生成看 Lua VM 前端与后端协同:编译器与执行器衔接逻辑
开发语言·前端·lua
青云交17 分钟前
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用
java·机器学习·分布式计算·数据预处理·遥感图像·模型融合·土地利用分类
huangql52019 分钟前
Nginx 从零到精通 - 最详细的循序渐进教程
开发语言·网络·nginx
=>>漫反射=>>35 分钟前
【Spring Boot Starter 设计思考:分离模式是否适用于所有场景】
java·spring boot·后端·设计规范·自动装配
xlq2232237 分钟前
10.string(上)
开发语言·c++
Jack电子实验室39 分钟前
深入理解C语言函数指针:从基础到实战应用
java·c语言·算法
合作小小程序员小小店1 小时前
舆情,情感微博系统demo,基于python+qt+nlp,开发语言python,界面库qt,无数据库版,数据来自第三方网站获取,
开发语言·pytorch·qt·自然语言处理·nlp