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