Lambda 允许把函数作为一个方法的参数,使用 Lambda 表达式可以使代码变的更加简洁紧凑。
1、操作步骤
- 创建一个接口LambdaInterface1.java
public interface LambdaInterface1 {
void test();
}
- 创建一个接口LambdaInterface2.java
public interface LambdaInterface2 {
void test(int n);
}
- 创建一个接口LambdaInterface3 .java
public interface LambdaInterface3 {
void test(int n,int m);
}
- 通常情况下,我们会创建这些接口的实现类,或者使用匿名类如下:
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表达式的基本用法。