博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lambda 表达式
阅读量:3964 次
发布时间:2019-05-24

本文共 1245 字,大约阅读时间需要 4 分钟。

二、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
() { @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

转载地址:http://hzzki.baihongyu.com/

你可能感兴趣的文章
方法重载
查看>>
域和局部变量的初始值
查看>>
对象初始化方式及顺序
查看>>
重写 equals 方法
查看>>
重写 hashCode 方法
查看>>
Spring Batch 注册监听器
查看>>
正则表达式的匹配原理
查看>>
实现 Comparable 和 Comparator 接口
查看>>
重写 copy 方法
查看>>
内部类
查看>>
固化分组和占有量词
查看>>
去除首尾空白字符
查看>>
去掉文件名中的路径
查看>>
Spring Batch Step 流程
查看>>
动态代理
查看>>
如何写出高效的正则表达式
查看>>
多个 ZooKeeper 服务器的例子
查看>>
正则表达式
查看>>
Java I/O
查看>>
序列化
查看>>