JavaSE_04_JDK1.8新特性Lambda表达式
2024-10-08 00:43:03
1.1体验Lambda的更优写法
借助Java 8的全新语法,上述Runnable
接口的匿名内部类写法可以通过更简单的Lambda表达式达到等效:
1.2 Lambda标准格式
Lambda省去面向对象的条条框框,格式由3个部分组成:
一些参数
一个箭头
一段代码
省略规则
在Lambda标准格式的基础上,使用省略写法的规则为:
小括号内参数的类型可以省略;
如果小括号内有且仅有一个参,则小括号可以省略;
如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
使用lambda表达式后
Arrays.sort(arr, ( o1, o2) ->o1.getAge() - o2.getAge()
通过实现对对象数组的排序,认识Lambda表达式
1.3不使用lambda表达式
public class Demo03Arrays {
public static void main(String[] args) {
Person[] arr = { new Person("A", 20), new Person("D", 16), new Person("B", 28),
new Person("E", 27), };
Arrays.sort(arr, new Comparator<Person>() { public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
// 使用lambda表达式,简化匿名内部类
for (Person person: arr) {
System.out.println(person);
}
} }
1.4使用lambda表达式
public class Demo03Arrays {
public static void main(String[] args) {
Demo03Person[] arr = { new Person("A", 20),
new Person("D", 16),
new Person("B", 28),
new Person("E", 27), }; // 使用lambda表达式,简化匿名内部类
Arrays.sort(arr, (Person o1, Person o2) -> {
return o1.getAge() - o2.getAge();
});
//lambda表达式最终效果
//Arrays.sort(arr, ( o1, o2) ->o1.getAge() - o2.getAge() for (Person person : arr) {
System.err.println(person );
}
}
}
最新文章
- spring声明式事务管理总结
- python学习笔记:Day02
- SQLite3的基本使用
- 在sqlServer中把数据导出为insert脚本
- sharepoint 2013 设置 显示详细错误信息
- POJ1094 Sorting It All Out(拓扑排序)
- Please ensure that adb is correctly located at &#39;...adb.exe&#39; and can be executed.
- DM8168硬件平台
- WEB中调用Nutch执行JOB抓取
- ⑩bootstrap组件 导航 使用基础案例
- MySQL错误:2003-Can&#39;t connect to MySQL server on &#39;localhost&#39;(10061 ";unknown error";)
- css中bfc和ifc
- Android应用程序如何使用Internet资源?
- ionic3使用echarts
- 编译安装Nginx和PHP(带编译mysql)
- UnityHub破解
- css继承属性与非继承属性
- 吴恩达《AI For Everyone》_练习英语翻译_待更新
- bzoj 4137 [FJOI2015]火星商店问题——线段树分治+可持久化01trie树
- java 集合综述(总结于多位博友)