Lambda表达式

Posted lxy522

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda表达式相关的知识,希望对你有一定的参考价值。

Lambda表达式

标准格式由三部分组成:

一些参数

一个箭头

一段代码

即:(参数类型 参数名称)->{ 一些重写方法的代码 }

格式说明:

():接口中的抽象方法的参数列表;无参数则留空;多个参数则用逗号分隔

-> : 传递的意思,把参数传递给方法体{}

{} : 重写的抽象方法的方法体

1、无参的应用案例

public interface Cook {
  public abstract void makeFood();
}
public class LambdaDemo07 {
  public static void main(String[] args) {
      //调用invokeCook方法,参数是cook接口,传递cook接口的匿名内部类对象
      invokeCook(()->{
          System.out.println("我爱做饭饭");
      });
  }
  //定义一个方法,参数传递cook接口,方法内部调用cook接口中的方法makefood
  public static void invokeCook(Cook cook){
      cook.makeFood();
  }
}

2、有参有返回值案例1

public class Person {
  private String name;
  private Integer age;
?
  public Person() {
  }
?
  public Person(String name, Integer age) {
      this.name = name;
      this.age = age;
  }
?
  public String getName() {
      return name;
  }
?
  public void setName(String name) {
      this.name = name;
  }
?
  public Integer getAge() {
      return age;
  }
?
  public void setAge(Integer age) {
      this.age = age;
  }
?
  @Override
  public String toString() {
      return "Person{" +
              "name=‘" + name + ‘‘‘ +
              ", age=" + age +
              ‘}‘;
  }
}
public class Demo08Arrays {
  public static void main(String[] args) {
      Person[] arr = {
              new Person("aa",19),
              new Person("bb",27),
              new Person("cc",24)
      };
?
      Arrays.sort(arr,(Person o1, Person o2)->{
          return o1.getAge()-o2.getAge();
      });
?
      for (Person person : arr) {
          System.out.println(person);
      }
  }
}

2、有参有返回值案例2

public interface Calculator {
  public abstract int calc(int a,int b);
}
public class Demo09Main {
  public static void main(String[] args) {
      /*invokeCalc(2, 3, new Calculator() {
          @Override
          public int calc(int a, int b) {
              return a+b;
          }
      });*/
      invokeCalc(2, 3,(int a, int b)->{return a+b;});
  }
  private static void invokeCalc(int a,int b,Calculator calculator){
      int result = calculator.calc(a, b);
      System.out.println("结果是"+result);
  }
}

技术图片

技术图片

 

以上是关于Lambda表达式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA由一个将JSONArray转成Map的需求引发的lambda语法的学习

函数式编程

C# fun

Lambda表达式

Lambda表达式

Lambda表达式