Lambda表达式


实例1:无参数、无返回值

实现只有一行,括号可以省略

//匿名内部类写法
Runnable r=new Runnable(){
    @Override
    public void run() {
        System.out.println("我爱北京天安门");
    }
 };
r.run();
// Lambda表达式写法
Runnable r1=() -> System.out.println("very good");
r1.run();

实例2:需要一个参数,但没有返回值

//匿名内部类写法
Consumer consumer=new Consumer(){
@Override
public void accept(String t) {
    System.out.println(t);
}};

实例2:需要一个参数,但没有返回值

可以类型推断;只有一个参数,小括号可以省略;

// Lambda表达式写法
Consumer consumer1=(String t)->{
    System.out.println(t);
};
Consumer consumer2=(t)->{
    System.out.println(t);
};
Consumer consumer3=t->{
    System.out.println(t);
};

实例3:有多个参数有返回值,小括号不能省

//匿名内部类写法
  Comparator comparator=new Comparator() {
  @Override
public int compare(Integer o1, Integer o2) {
    return Integer.compare(o1,o2);
}};
System.out.println(comparator.compare(10, 20));
//Lambda表达式写法
Comparator comparator1=(o1,o2) -> Integer.compare(o1,o2);
System.out.println(comparator1.compare(20, 30));

相关