首页 > 其他分享 >Lamda表达式

Lamda表达式

时间:2022-11-29 14:48:13浏览次数:43  
标签:Lamda love like System println out 表达式 lambda

Lamda表达式

λ希腊字母表中排序第十一位的字母,英语名称为lambda

Lambda 表达式是在 Java 8 中引入的,并且成为了 Java 8 最大的特点。它使得功能性编程变得非常便利,极大地简化了开发工作。

避免匿名内部类定义过多

其实质属于函数式编程的概念

Lambda 表达式的语法与特征

一个 Lambda 表达式具有下面这样的语法特征。它由三个部分组成:第一部分为一个括号内用逗号分隔的参数列表,参数即函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部分为方法体,可以是表达式和代码块。语法如下

(params) -> expression [表达式]

​ (params) ->statement [语句]

​ (params) -> {statements}

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

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

lambda表达式推导:

  1. 定义一个函数式接口
interface ILike{
    void lambda();
}
  1. 实现类
class Like implements ILike{

    @Override
    public void lambda() {
        System.out.println("i like lambda");
}
  1. 静态内部类
static class Like2 implements ILike{

    @Override
    public void lambda() {
        System.out.println("I like lambda2");
    }
}
public static void main(String[] args) {
    ILike like=new Like();
    like.lambda();

    like=new Like2();
    like.lambda();

    //4.局部内部类
    class Like3 implements ILike{
         @Override
        public void lambda() {
            System.out.println("I like lambda3");
        }
    }

    like=new Like3();
    like.lambda();

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

    //6.用lambda简化
    like=()-> {
        System.out.println("i like lambda5");
    };
    like.lambda();

}

简化lambda表达式

//函数式接口
interface ILove{
    void love(int a);
}
//简化1.参数类型
love=(a)->{
    System.out.println("i love you"+a);
};
love.love(250);

//简化2.括号
love=a -> {
    System.out.println("i love you"+a);
};
love.love(521);

//简化3.去掉{}
love=a -> System.out.println("i love you"+a);
love.love(222);

总结:

  1. lambda表达式只能有一行代码的情况下,才能简化成为一行。如果有多行,就用代码块包裹
  2. 前提是接口为函数式接口
  3. 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号()

标签:Lamda,love,like,System,println,out,表达式,lambda
From: https://www.cnblogs.com/muziblog/p/16935329.html

相关文章

  • Lambda表达式
    Lambda表达式Lambda表达式是JDK8开始后的一种新语法形式。作用:简化匿名内部类的代码写法。(匿名内部类被重写方法的形参列表)->{   被重写方法的方法体代码。 }......
  • 代码随想录算法训练营第十一天 | 20. 有效的括号 1047. 删除字符串中的所有相邻重
    今日内容:●20.有效的括号●1047.删除字符串中的所有相邻重复项●150.逆波兰表达式求值详细布置20.有效的括号讲完了栈实现队列,队列实现栈,接下来就是栈......
  • 编辑器常用正则表达式
    编辑器常用正则表达式匹配空格表达式:^\s?|\s+匹配截至空格表达式:^\s?|\s+$匹配空行根据文档格式和系统(windows,mac,linux行尾符)不同将其中的\r\n替换成不同......
  • 论万恶的中缀表达式转前缀
    论万恶的中缀表达式转前缀话说中缀表达式转后缀表达式真是一件乐事。从CSP-J2022T3来的,因为除了递归拆分,还可以用这种方法来实现对带括号的逻辑表达式进行运算。参考......
  • 0123-Go-正则表达式
    环境Time2022-08-25Go1.19前言说明参考:https://gobyexample.com/regular-expressions目标使用Go语言的正则表达式。示例packagemainimport( "bytes" ......
  • 正则表达式30分钟入门教程
     正则表达式30分钟入门教程版本:v2.3(2008-4-13)作者:​​deerchao​​​转载请注明来源目录​​跳过目录​​​​本文目标​​​​如何使用本教程​​​​正则表达......
  • 正则表达式备份
    [^/]+[0-9a-zA-Z]+\\.+\\w+匹配链接中的资源名称和后缀名:[^/]+[0-9a-zA-Z]+\\.+\\w+此表达式有问题,只要是前面是字符串,后面是.xxx都会给匹配上,目前能力有限无法优化,只能在......
  • ios微信小程序白屏,无效正则表达式"MiniProgramError\nSyntaxError\nError: SyntaxEr
    安卓小程序正常,ios白屏报错,无效正则表达式"MiniProgramError\nSyntaxError\nError:SyntaxError\natline:4171,column:2635962,SyntaxError:Invalidregularexpressio......
  • 小新学Java13-【线程池、Lambda表达式】
    一、等待唤醒机制1.1线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。1.2等待唤醒机制什么是等待唤醒机制?这是多个线程间的一种协作机......
  • 【正则】223-JS常用正则表达式备忘录
    ​翻译自RegexCheatSheet(https://dev.to/emmawedekind/regex-cheat-sheet-2j2a)翻译:前端小智整理编辑:SegmentFault正则表达式或“regex”用于匹配字符串的各个部分,下面是作......