精心整理了最新的面試資料,有需要的可以自行獲取
點擊前往百度網盤獲取
點擊前往夸克網盤獲取
Lambda表達式
簡介:
- 希臘字母表中排序第十一位的字母,英語名稱為Lambda
- 避免匿名內部類定義過多
- 其實質屬于函數式編程的概念
為什么要使用lambda表達式
- 避免匿名內部類定義過多
- 可以讓代碼看起來很簡潔
- 去掉了一堆沒有意義的代碼,只留下核心的邏輯。
函數式接口的定義:
任何接口,如果只包含唯一一個抽象方法,那么它就是一個函數式接口。
例如:
public interface Runnable {public abstract void run();
}
對于函數式接口,我們可以通過lambda表達式來創建該接口的對象。
代碼演示:
public class TestLambda {//2.靜態內部類static class Test2 implements Lambda{@Overridepublic void lam(int a){System.out.println("i like2 you" + a);}}public static void main(String[] args) {Lambda lambda = new Test1();lambda.lam(5);lambda = new Test2();lambda.lam(6);//3.局部內部類class Test3 implements Lambda{@Overridepublic void lam(int a){System.out.println("i like3 you" + a);}}lambda = new Test3();lambda.lam(7);//4.匿名內部類,沒有類的名稱,必須借助接口或父類lambda = new Lambda() {@Overridepublic void lam(int a) {System.out.println("i like4 you" + a);}};lambda.lam(8);//5.lambda簡化lambda = (a)->{System.out.println("i like5 you" + a);};lambda.lam(9);}
}
interface Lambda{void lam(int a);
}
//1.實現類
class Test1 implements Lambda{@Overridepublic void lam(int a){System.out.println("i like1 you" + a);}
}
代碼結果: