Lamda表达式
学习Lamda表达式的关键是:理解Functional Interface (函数式接口)
函数式接口
定义:任何接口,如果它只包含唯一一个抽象方法,那么它就是一个函数式接口。
对于函数式接口,我们可以通过Lamda表达式来创建该接口的对象。
Lamda表达式
定义:Lamda表达式是一个匿名函数,它是基于数学中的λ演算得名的,是一个匿名函数,即没有函数名的函数。
只有函数式接口才能通过Lamda表达式来创建接口。
作用:
①避免匿名内部类定义过多
②让代码看起来很简洁
③去掉没有意义的代码,留下核心逻辑
④其实质属于函数式编程的概念
常见的Lamda表达式使用场景
(一)列表迭代
对列表进行遍历操作时:
不使用Lamda表达式时:
List<Integer> nums = Arrays.asList(1,2,3,4,5);
for(int elem : nums){
System.out.printlin(elem);
}
使用Lamda表达式时:
List<Integer> nums = Arrays.asList(1,2,3,4,5);
nums.forEach(x->System.out.println(x));
Runnable接口
多线程实现Runnable接口时使用Lamda表达式:
不使用Lamda表达式:
new Thread(new Runnable(){
void run(){
System.out.println("I am new Runnable");
}
})
使用Lamda表达式
new Thread(()->{System.out.println("I am new Runnable")};)