Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù),使用 Lambda 表達(dá)式可以使代碼變的更加簡(jiǎn)潔緊湊。
1、操作步驟
- 創(chuàng)建一個(gè)接口LambdaInterface1.java
public interface LambdaInterface1 {
void test();
}
- 創(chuàng)建一個(gè)接口LambdaInterface2.java
public interface LambdaInterface2 {
void test(int n);
}
- 創(chuàng)建一個(gè)接口LambdaInterface3 .java
public interface LambdaInterface3 {
void test(int n,int m);
}
- 通常情況下,我們會(huì)創(chuàng)建這些接口的實(shí)現(xiàn)類,或者使用匿名類如下:
public class LambdaInterface1Impl{
public void test()
{
System.out.println("LambdaInterface1Impl.test()");
}
}
或者
new LambdaInterface1() {
@Override
public void test() {
System.out.println("LambdaInterface1.test()");
}
}.test();
- 在使用了lambda表達(dá)式后,代碼可以簡(jiǎn)化成下面這樣:
((LambdaInterface1) () -> System.out.println("LambdaInterface1.test()")).test();
((LambdaInterface2) n -> System.out.println("LambdaInterface2.test(int n)")).test(2);
(LambdaInterface3) (n, m) -> System.out.println("LambdaInterface3.test(int n, int m)")).test(1, 2);
- 再舉一個(gè)排序的例子寫成lambda表達(dá)式:
本來(lái)是這樣:
Integer[] is = new Integer[]{6,8,4,34,7,3,23,432};
Arrays.sort(is, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
可以簡(jiǎn)化為這樣:
Integer[] is = new Integer[]{6,8,4,34,7,3,23,432};
Arrays.sort(is, (o1, o2) -> o1-o2);
以上就是lambda表達(dá)式的基本用法。