Lamda表达式详解

Lamda表达式详解Lamda表达式1、λ希腊字母表中排序第十一位的字母,英语名称为Lamda2、避免匿名内部类定义过多3、可以让你的代码看起来很简洁4、去掉了一堆没有意义的代码,留下核心的逻辑3、其实质属于函数式编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements}a->System.out.println(“ilikelamda–>”+a)newTh

大家好,又见面了,我是你们的朋友全栈君。

Lamda表达式

在这里插入图片描述

1、λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda
2、避免匿名内部类定义过多
3、可以让你的代码看起来很简洁
4、去掉了一堆没有意义的代码,留下核心的逻辑
3、其实质属于函数式编程的概念

(params)-> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}

a -> System.out.println("i like lamda-->"+a)

new Thread (()->System.out.println(“多线程学习。。。。”)).start();

怎么理解

1、理解Functional interface(函数式接口)是学习java8 lamda表达式的关键所在。

2、函数式接口的定义:

  • 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface Runnable{ 
   
	public abstract void run();
}
  • 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象

代码推导λ表达式

package com.haiyang.lamda;

public class TestLamda01 { 
   

    //3、静态内部类,同样实现ILike接口
    static class Like2 implements ILike{ 
   
        @Override
        public void lamda() { 
   
            System.out.println("i like lamda2");
        }
    }

    public static void main(String[] args) { 
   
        ILike like = new Like();
        like.lamda();
        like = new Like2();
        like.lamda();

        //4、局部内部类
        class Like3 implements ILike{ 
   
            @Override
            public void lamda() { 
   
                System.out.println("i like lamda3");
            }
        }
        like = new Like3();
        like.lamda();

        //5、匿名内部类,没有类的名称。必须借助接口或者父类
        like = new ILike() { 
   
            @Override
            public void lamda() { 
   
                System.out.println("i like lamda4");
            }
        };
        like.lamda();

        //6、lamda表达式
        like = ()->{ 
   
            System.out.println("i like lamda5");
        };
        like.lamda();
    }
}


//1、定义一个只有一个抽象方法的接口
interface ILike{ 
   
    abstract void lamda();
}

//2、实现类
class Like implements ILike{ 
   

    @Override
    public void lamda() { 
   
        System.out.println("i like lamda1");
    }
}

输出:
在这里插入图片描述

带一个参数的Lamda简化

package com.haiyang.lamda;

public class TestLamda02 { 
   

    public static void main(String[] args) { 
   
        ILive live = null;

        //Lamda简化
        live = (int a)->{ 
   
            System.out.println("I live you"+a);
        };
        live.live(1);

        //Lamda简化参数类型
        live = (a)->{ 
   
            System.out.println("I live you"+a);
        };
        live.live(2);

        //Lamda简化括号
        live = a->{ 
   
            System.out.println("I live you"+a);
        };
        live.live(3);

        //Lamda简化花括号(只有一条语句时)
        live = a->System.out.println("I live you"+a);
        live.live(4);
    }

}

interface ILive{ 
   
    abstract void live(int a);
}

输出:
在这里插入图片描述

带多个参数的Lamda简化


package com.haiyang.lamda;

public class TestLamda02 { 
   

    public static void main(String[] args) { 
   
        ILive live = null;

        //Lamda简化
        live = (int a,int b)->{ 
   
            System.out.println("I live you"+a+b);
        };
        live.live(1,1);

        //Lamda简化参数类型(要去掉就要都去掉)
        live = (a,b)->{ 
   
            System.out.println("I live you"+a+b);
        };
        live.live(2,2);


        //Lamda简化花括号(只有一个语句时)
        live = (a,b)->System.out.println("I live you"+a+b);
        live.live(3,3);
    }

}

interface ILive{ 
   
    abstract void live(int a,int b);
}

输出:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130916.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs 2013 未能正确加载 Mircosoft Vistual Studio Tools for Application 2013 ….包

    vs 2013 未能正确加载 Mircosoft Vistual Studio Tools for Application 2013 ….包打开vs快捷菜单所在的文件夹可以看到

    2022年8月18日
    20
  • 变异系数法之python

    变异系数法之python1.简介2.算法原理2.1指标正向化2.2数据标准化2.3计算变异系数2.4计算权重以及得分3.实例分析3.1读取数据3.2指标正向化3.3查看行数和列数3.4数据标准化3.5计算变异系数3.6计算权重3.7计算得分完整代码

    2022年6月12日
    54
  • SQL Server 2019 安装教程[通俗易懂]

    SQLServer2019安装教程下载安装SQL:1、下载SQLServer2019Developer官方网址:下载地址。2、下拉选择免费版本,直接点击下载(别问,问就是家境贫寒????)。3、双击启动安装文件,示例:4、等待…5、选择基本安装类型,示例:6、选择语言:中文(简体),然后点击接受。示例:7、根据自己的需求,选择合适的安装路径,最后点击安装。示例:…

    2022年4月6日
    228
  • qemu -img_qemu manager

    qemu -img_qemu manager一、virsh基本操作1、列出当前正在运行的虚拟机[root@room9pc01~]#virshlist2、查看虚拟机的信息[root@room9pc01~]#virshdominfonode1//查看node1的信息Id:1Name:node1UUID:20…

    2022年8月11日
    6
  • 模拟退火算法的原理+应用

    模拟退火算法的原理+应用本文转自 https www cnblogs com ranjiewen p 6084052 html 模拟退火算法 nbsp nbsp nbsp 著名的模拟退火算法 它是一种基于蒙特卡洛思想设计的近似求解最优化问题的方法 nbsp 一点历史 如果你不感兴趣 可以跳过 nbsp nbsp nbsp 美国物理学家 N Metropolis 和同仁在 1953 年发表研究复杂系统 计算其中能量分布的文章 他们使用蒙特卡罗模拟法计算多分子系统中分子的能量分

    2025年9月15日
    0
  • 51单片机流水灯电路以及C代码「建议收藏」

    51单片机流水灯电路以及C代码「建议收藏」流水灯是51单片机的入门级实验,以下是其电路图以及C代码流水灯proteus电路图此图发光二极管采用共阳极式连接流水灯C代码#include<reg51.h>voiddelay1s(unsignedcharn);voidMovinglight(){ unsignedcharcodeMovinglightA

    2022年5月3日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号