1. Lambda 表达式基础:
Lambda 表达式的基本语法如下:
(parameters) -> expression
或者:
(parameters) -> { statements; }
Lambda 表达式由参数列表、箭头符号和主体组成。主体可以是一个表达式或一组语句。
2. 使用 Lambda 表达式:
Lambda 表达式通常与函数式接口一起使用。函数式接口是只包含一个抽象方法的接口。
@FunctionalInterface
interface MyInterface {
void myMethod(String s);
}
public class LambdaExample {
public static void main(String[] args) {
// 使用匿名类
MyInterface myInterface1 = new MyInterface() {
@Override
public void myMethod(String s) {
System.out.println("Hello, " + s);
}
};
myInterface1.myMethod("World");
// 使用 Lambda 表达式
MyInterface myInterface2 = (s) -> System.out.println("Hello, " + s);
myInterface2.myMethod("Lambda");
}
}
3. Lambda 表达式的参数:
Lambda 表达式的参数列表可以为空,也可以有多个参数。
// 无参数
() -> System.out.println("Hello");
// 单个参数
(x) -> System.out.println("Value: " + x);
// 多个参数
(x, y) -> {
int sum = x + y;
System.out.println("Sum: " + sum);
}
4. Lambda 表达式的主体:
Lambda 表达式的主体可以是一个表达式,也可以是一组语句。
// 表达式主体
(x, y) -> x + y
// 语句主体
(x, y) -> {
int sum = x + y;
System.out.println("Sum: " + sum);
}
5. Lambda 表达式与集合:
Lambda 表达式在集合操作中非常有用,例如使用 forEach 迭代集合。
import java.util.ArrayList;
import java.util.List;
public class LambdaWithCollections {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 使用 Lambda 表达式迭代集合
names.forEach(name -> System.out.println("Hello, " + name));
}
}
6. Lambda 表达式的方法引用:
Lambda 表达式还支持方法引用,可以通过 :: 来引用一个方法。
import java.util.Arrays;
public class MethodReferenceExample {
public static void main(String[] args) {
// 使用 Lambda 表达式
Arrays.asList("Java", "C", "Python")
.forEach(s -> System.out.println(s));
// 使用方法引用
Arrays.asList("Java", "C", "Python")
.forEach(System.out::println);
}
}
7. Lambda 表达式与函数式接口:
Lambda 表达式通常与函数式接口一起使用,函数式接口是只包含一个抽象方法的接口。
@FunctionalInterface
interface MyFunctionalInterface {
void myMethod(String s);
}
public class LambdaWithFunctionalInterface {
public static void main(String[] args) {
// 使用 Lambda 表达式
MyFunctionalInterface myInterface1 = (s) -> System.out.println("Hello, " + s);
myInterface1.myMethod("Lambda");
// 使用匿名类
MyFunctionalInterface myInterface2 = new MyFunctionalInterface() {
@Override
public void myMethod(String s) {
System.out.println("Hello, " + s);
}
};
myInterface2.myMethod("Anonymous Class");
}
}
以上是一个简单的 Java Lambda 教程,介绍了 Lambda 表达式的基本概念和用法。Lambda 表达式是 Java 8 中引入的一项重要特性,使得代码变得更加简洁和具有更好的可读性。
转载请注明出处:http://www.zyzy.cn/article/detail/465/Java