Java Lambda表达式

102 阅读1分钟

Lambda表达式

函数式编程(Functional programming)是一种思想特点

面向对象:先找对象,让对象做事情

函数式编程思想:忽略面向对象的复杂语法,强调做什么,而不是谁去做

Lambda表达式就是函数式思想的体现

Lambda表达式的标准格式

Lambda表达式是JDK 8开始后的一种新语法格式

() -> {
    
}
  • () 对应着方法的形参
  • -> 固定格式
  • {} 对应着方法的方法体
//改写
Arrays.sort(arr, (Integer o1, Integer o2) -> {
        return o1 - o2;  //升序排列
        //return o2 - o1;  //降序排列
    }
);

注意点:

  • Lambda表达式可以用来简化匿名内部类的书写
  • Lambda表达式只能简化函数式接口的匿名内部类的写法
  • 函数式接口
    • 有且只有一个抽象方法的接口叫做函数式接口
      • 接口上方可以加@FunctionalInterface注解

Lambda的好处

Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到了提升

Lambda表达式的省略写法

  • 省略核心

    • 可推导,可省略
  • 省略规则

    • 参数类型可以省略不写
    • 如果只有一个参数,参数类型可以省略,同时()也可以省略
    • 如果Lambda表达式的方法体只有一行,大括号、分号、return可以省略不写,需要同时省略
//改写
Arrays.sort(arr, (o1,o2) -> o1 - o2);