Lambda基本语法及使用

Lambda

概述

  • lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法
  • 使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例
  • 可以将 lambda 表达式视为一个对象,可以将其作为参数传递

lambda 语法

  1. 无参数,无返回值
    ()-> System.out.println("Hello Lambda!")
  2. 有一个参数,并且无返回值
    (x)-> System.out.println(x)
  3. 若只有一个参数,小括号可以省略不写
    x-> System.out.println(x)
  4. 有两个以上的参数,有返回值,并且 Lambda体中有多条语句
    Comparator<Integer> com =(x,y)->(System.out.print1n("函数式接口") return Integer.compare(x,y)
  5. 若 Lambda体中只有一条语句, return和大括号都可以省略不写
    Comparator<Integer> com =(x,y) -> Integer. compare (x,y)
  6. Lambda表达式的参数列表的数据类型可以省略不写,编译器通过上下文推断出,数据类型,即“类型推断”
    (Integer x, Integer y)-> Integer. compare(x, y)

内置接口

  1. 使用lambda的前提是存在函数式接口

    ps:为了使用一些通用功能还是需要自己定义函数接口,为了解决这个问题提供了内置函数式接口

  2. 四大核心接口

    接口参数类型返回类型用途
    Consumer(消费型接口)Tvoid对类型为T的对象应用操作,void accept(T t)
    Supplier 供给型接口T返回类型为T的对象,T get();
    Function<T, R> 函数型接口TR对类型为T的对象应用操作,并返回结果。结果是R类型的对象。包含方法:R apply(T t);
    Predicate 断定型接口Tboolean类型为T的对象是否满足某约束,并返回boolean 值。包含方法boolean test(T t)
  3. 其他接口

    接口参数类型返回类型用途
    BiFunction<T, U, R>T, UR对类型为 T, U 参数应用操作, 返回 R 类型的结果。包含方法为 R apply(T t, U u);
    UnaryOperator (Function子接口)TT对类型为T的对象进行一元运算, 并返回T类型的结果。包含方法为 T apply(T t);
    BinaryOperator(BiFunction 子接口)T,TT对类型为T的对象进行二元运算, 并返回T类型的结果。包含方法为T apply(T t1, T t2);
    BiConsumer<T, U>T,Uvoid对类型为T, U 参数应用操作。包含方法为void accept(T t, U u)
    ToIntFunction
    ToLongFunction
    ToDoubleFunction
    Tint
    long
    double
    分 别 计 算 int 、 long 、double、值的函数
    IntFunction
    LongFunction
    DoubleFunction
    int
    long
    double
    R参数分别为int、long 、double 类型的函数

方法引用

  1. 当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用

  2. “::” 将方法名和对象或类的名字分隔开

    对象::实例方法

    类::静态方法

    类::实例方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值