Lambda 表达式

二、Lambda 表示式

1、Lambda表达式是jdk1.8才有的新特性,在一些主流的语言中,该表达式都出现得比java早,比如javaScript语言是基于对象具有面向过程的特点。Java 为了不落伍,在2014年推出了该表达式的使用语法。编译器要改造,jvm执行引擎也要修改。
2、使用Lambda表达式的好处
在编程的时候,如果遇到要使用函数式接口(Lambda是函数式编程语言的主要特点),可以使用它,让代码的结构变得更加简洁,书写的代码量会减少。
3、函数式接口
一个接口中只能有一个抽象方法。在1.8中新出现了一个注解@FunctionInterface,它专门用来注解函数式接口,防止出现第二个抽象方法。
4、Lambda表达式的语法

 ()->表达式
()->{语句}

提示:(可以有参数声明)

5、使用Lambda表达式

   /* new Thread(
         new Runnable() {
             @Override
             public void run() {
                 System.out.println("线程执行");
             }
         }
 ).start();*/
//Lambda实现
//小括号表示调用函数式接口中唯一的方法,所以它不能有第二个方法,否则 编译器糊涂了
 new Thread(()-> System.out.println("线程执行")).start();


new Thread(()-> {
     System.out.println("线程执行");
    System.out.println("再执行一次");
}).start();


对数组排序


 Person[] persons = {new Person("aa",20),new Person("bb",5),new Person("cc",9)};
 //对数组排序
/* Arrays.sort(persons,
         new Comparator<Person>() {
             @Override
             public int compare(Person o1, Person o2) {
                 return o1.age - o2.age;
             }
         }
 );*/

Arrays.sort(persons,
        (Person o1,Person o2)->{return o1.age - o2.age;}
        );


 for (Person p:persons ) {
     System.out.println(p);
 }

提示:以后的编程中,如果需要使用匿名内部类,而且内部类的接口是函数式接口,就应当使用Lamb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值