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

Lamda表达式

时间:2023-08-24 17:12:56浏览次数:57  
标签:lamda like Lamda System println public 表达式 out

Lamda表达式

1.为什么要用lamda表达式(函数式编程)
  1. 避免匿名内部类定义过多。

  2. 代码简洁。

  3. 去掉没有意义代码,只留下核心逻辑。

    new Thread (()->System.out.println("多线程学习")).start()
2.函数式接口定义:
  1. 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。

public interface Runnable {
   public abstract void run();
}

对于函数式接口,我们可有通过lamda表达式来创建接口对象。


public class TestLamda {

   // 静态内部类
   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();
       ILike like2 =new Like2();
       like2.lamda();
       // 局部内部类
       class Like3 implements ILike{
           @Override
           public void lamda() {
               System.out.println("i like lamda3");
          }
      }
       ILike like3 = new Like3();
       like3.lamda();
       // 匿名内部类
       like = new ILike(){
           public void lamda() {
               System.out.println("i like lamda4");
          }
      };
       like.lamda();

       // 用lamda简化
       like = () -> {
           System.out.println("i like lamda5");
      };
       like.lamda();
  }
}

// 定义一个函数式接口
interface ILike{
   void lamda();
}
class Like implements ILike{
   @Override
   public void lamda() {
       System.out.println("i like lamda");
  }
}
public class TestLamda2 {

   static class Love1 implements  ILove{
       @Override
       public void love(int a) {
           System.out.println("i love you2");
      }
  }

   public static void main(String[] args) {

       /**
        * // 1.lamda表达示简化
        *         ILove love = (int a) -> {
        *             System.out.println("i like you5");
        *         };
        *         love.love(1);
        *
        *         // 2.参数类型简化
        *         ILove love1 = (a) -> {
        *             System.out.println("i like you5");
        *         };
        *         love1.love(1);
        *
        *         // 3.简化括号
        *         ILove love2 = a -> {
        *             System.out.println("i like you5");
        *         };
        *         love2.love(1);
        *         // 4.简化大括号
        *         ILove love2 = a -> System.out.println("i like you5");
        *           love2.love(1);
        */

       // 总结
           // lamba表达式只能有一行代码情况下才能简化成一行,如果有多行就用代码块包裹。
           // 接口为函数式接口
           // 多个参数也可以去掉类型,要是去掉括号,必须只有一个参数
  }
}


interface ILove{
   void love(int a);
}
 

标签:lamda,like,Lamda,System,println,public,表达式,out
From: https://www.cnblogs.com/yuan947022015/p/17654611.html

相关文章

  • 密码正则表达式大全
    1种只能由1种组成只能由字母组成,1-9位^[a-zA-Z]{1,9}$只能由数字组成,1-9位^\d{1,9}$只能由特殊字符组成,1-9位^[^\da-zA-Z\s]{1,9}$至少包含1种至少包含字母,1-9位^(?=.*[a-zA-Z]).{1,9}$至少包含数字,1-9位^(?=.*\d).{1,9}$至少包含特殊字符,1-9位^(?=.*[^\da-zA-Z\s])......
  • 《流畅的python》— 列表推导与生成器表达式
    列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列。如果你的代码里并不经常使用它们,那么很可能你错过了许多写出可读性更好且更高效的代码的机会。很多Python程序员都把列表推导(listcomprehension)简称为listcomps,生成器表达式(generatorexpre......
  • vue常用正则表达式判断身份证格式
    判断身份证格式 /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/写成一个校验类,以后直接使用functionisIdCard(idCard){letreg=/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|3......
  • Python基础入门学习笔记 021函数:lambda表达式
    lambda表达式的作用•Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。•对于一些比较抽象并且整个程序执行下来只需要调用一两次的函......
  • python 使用re模块,配合正则表达式来查找字符串的想要的字符串
    一,首先:我们现了解一下python中正则表达式的基本规则有那些?1,字符串"\d"匹配0~9之间的一个数值eg:'dsas212b321321'使用r'\d'结果:(它会一次匹配一个数字依次查找)212321321  2,字符"+"重复前面一个匹配字符一次或者多次eg:'dsas212b321321'方式1:使用r'\d+'结果:(......
  • shell 正则表达式
    限定符a*出现0次或者多次a+出现1次或者多次a?出现0次或者1次a{3}出现3次a{2,4}出现2~4次a{3,}出现3次或者多次或运算符(a|b)匹配a或者b(ab)|(cd)匹配ab或者cd字符类[abc]匹配a或者b或者c[a-c]同上[a-fA-F0-9]匹配小写+大写英文字符以及数字[^0-9]匹配......
  • 正则表达式:贪婪与非贪婪模式
    正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。在这6种元字符中,我们可以用{m,n}来表示(*)(+)(?)这3种元字符:贪婪模式,简单说就是尽可能进行最长匹配。非贪婪模式呢,则会尽可能进行最短匹配。正是这两种模式产生了不同的匹配结果。贪婪匹配(Greedy)在正则中,表示次数的量词默认是贪......
  • python 小案例正则表达式
    正则表达式是一种用于匹配、查找和替换文本的强大工具。在提取网页中的目标数据时,可以使用正则表达式来搜索和匹配特定模式的文本。以下是一个使用正则表达式提取网页中的目标数据的示例代码:importre#网页源代码html="""<divclass="title">正则表达式教程</div><divc......
  • 正则表达式 过滤文本
    5.正则表达式过滤文本REGEXP:RegularExpressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。正则表达式被很多......
  • 第二十一节 API(正则表达式)
    正则表达式1.1正则表达式的概念及演示在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规则。它内部描述了一些规则,我们可以验证用户输入的字符串是否匹配这个规则。先......