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]

    }
}
相关推荐
MapGIS技术支持10 分钟前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_14 分钟前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
程序员zgh40 分钟前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
小灰灰搞电子1 小时前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
by__csdn1 小时前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
喵了meme1 小时前
C语言实战5
c语言·开发语言
盖世英雄酱581361 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司2 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走2 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
一条可有可无的咸鱼2 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app