本文共 1297 字,大约阅读时间需要 4 分钟。
Lambda表达式是一种在Java语言中用于定义匿名内部函数的简洁方式,它允许开发者将代码块赋值给一个Java变量。自JDK8以来,Lambda表达式成为Java编程中不可或缺的一部分,极大地简化了代码书写,提升了代码的可读性和简洁性。
Lambda表达式的核心作用是为函数式接口提供实现。在Java中,函数式接口(如@FunctionalInterface
)要求接口中只包含一个抽象方法。这种特性与默认方法(@Override
)无关,即使接口中存在带默认实现的方法,也不会影响Lambda表达式的使用。
Lambda表达式的语法结构通常为:
接口名 lambdaName = (参数类型1, 参数类型2, ...) -> { // 方法体};
接下来,我们来看不同接口的Lambda表达式实现:
NoReturnMutilParam lambda1 = (int a, int b) -> { System.out.println("lambda1 " + a + " " + b);};lambda1.menthod(0, 1);
NoReturnOneParam lambda2 = a -> { System.out.println("lambda2 " + a);};lambda2.menthod(2);
ReturnOneParam lambda3 = a -> a + 3;System.out.println("lambda3 " + lambda3.menthod(4));
为了进一步简化代码,Lambda表达式提供了以下语法优化方式:
NoReturnMutilParam lambda1 = (a, b) -> { System.out.println("lambda1 " + a + " " + b);};
NoReturnOneParam lambda2 = a -> { System.out.println("lambda2 " + a);};
NoReturnOneParam lambda3 = a -> System.out.println("lambda3 " + a);
ReturnOneParam lambda4 = a -> a + 3;
按长度排序字符串数组:
String[] str = new String[]{"hello", "world", "test", "lambda"};Arrays.sort(str, (String s1, String s2) -> s1.length() - s2.length());
通过上述方法,Lambda表达式不仅简化了代码,同时提升了代码的可读性和执行效率。
转载地址:http://zfjk.baihongyu.com/