Lambda表达式
Posted winkelzyx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda表达式相关的知识,希望对你有一定的参考价值。
Lambda表达式
Lambda 表达式(lambda expression)是一个匿名函数,也可以称为闭包,它允许把函数作为一个方法的参数(函数作为参数传递进方法中),使得代码变得非常简洁。
1. 语法
(parameters) -> expression
或者
(parameters) ->{
statements;
}
- 不需要声明参数类型,编译器可以统一识别参数值
- 如果只有一个参数,可以省略圆括号
- 如果只有一条语句,无论是否有返回值,都可以省略大括号、分号、return语句(同省略)
注:
- lambda 表达式的局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义)
- 在 Lambda 表达式当中不允许声明一个与局部变量同名的参数或者局部变量。
2. 用途示例:
/**1. 指向一个已经被实现的方法。且参数数量和类型要与接口中定义的一致,返回值类型要与接口中定义的一致
引用方法:方法归属者::方法名
静态方法的归属者为类名,普通方法归属者为对象
*/
//2. 遍历集合 public void forEach(Consumer<? super E> action)
ArrayList<Integer> list = new ArrayList<>();
Collections.addAll(list, 1,2,3,4,5);
list.forEach(System.out::println);
list.forEach(element -> {
if (element % 2 == 0) {
System.out.println(element);
}
});
//3. 删除集合元素 public boolean removeIf(Predicate<? super E> filter)
list.removeIf(item -> item.getId() == 3);
//4. 利用stream()替代静态函数
personList.stream()
.filter( p -> p.getLastName().startWith("Z") )
.forEach( p -> System.out.println(p.getFirstName()));
以上是关于Lambda表达式的主要内容,如果未能解决你的问题,请参考以下文章