1 概述
lambda表达式是JDK8 的一个新特性
是一种没有名字的函数,可以称为闭包
本质就是一个匿名内部类,也叫箭头函数
2 为什么使用Lambda?
Lambda 是一个匿名函数,我们可以把Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
3 语法结构
- 类型可以不指定
- 一个参数,括号可以不加()
- 一条语句,大括号也可以不加{}
- 如果不加大括号,最后的分号也不用加
4 Lambda 和匿名内部类的比较
5 练习
使用Lambda表达式遍历List集合:
public static void main(String[] args) {
// 创建数组
String[] arr = { "one", "two", "three" };
// 转换为集合
List<String> list = Arrays.asList(arr);
// 遍历集合,1.8新写法
list.forEach(x -> System.out.println(x));
}
使用 Lambda 对集合元素进行排序
public static void main(String[] args) {
// 创建数组
Integer[] arr = { 2, 6, 8, 1, 3, 9, 5 };
// 转换为集合
List<Integer> list = Arrays.asList(arr);
//使用Collections.sort()进行排序
//Collections.sort(list);
//System.out.println(list);
//使用匿名内部类进行排序
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//降序
return o2 - o1;
//升序
//return o1 - o2;
}
});
System.out.println(list);
//使用 Lambda 表达式进行集合元素排序
list.sort((x,y)->x-y);
System.out.println(list);
}