// Java 8 Lambda 示例代码
// 1. 使用Lambda表达式简化接口实现
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
// 传统方式:使用匿名内部类实现接口
MathOperation addition = new MathOperation() {
@Override
public int operate(int a, int b) {
return a + b;
}
};
// 使用Lambda表达式简化实现
MathOperation subtraction = (a, b) -> a - b;
System.out.println("10 + 5 = " + operate(10, 5, addition));
System.out.println("10 - 5 = " + operate(10, 5, subtraction));
// 2. 使用Lambda表达式与函数式接口结合
// Predicate 是一个函数式接口,用于判断给定的输入是否满足条件
java.util.function.Predicate<Integer> isEven = num -> num % 2 == 0;
// 测试Predicate
System.out.println("Is 4 even? " + isEven.test(4));
System.out.println("Is 7 even? " + isEven.test(7));
// 3. 使用Stream API和Lambda表达式进行集合操作
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
// 使用Lambda表达式过滤并打印名字长度大于3的名字
names.stream()
.filter(name -> name.length() > 3)
.forEach(System.out::println);
}
// 操作方法
private static int operate(int a, int b, MathOperation mathOperation) {
return mathOperation.operate(a, b);
}
}
Lambda表达式简化接口实现:通过MathOperation
接口展示了如何使用Lambda表达式简化接口的实现。传统的匿名内部类实现被替换为更简洁的Lambda表达式。
函数式接口结合:Predicate
是一个函数式接口,通常用于判断某个条件是否成立。这里展示了如何使用Lambda表达式来定义一个检查数字是否为偶数的Predicate
。
Stream API与Lambda表达式结合:Java 8引入了Stream API,可以方便地对集合进行批量操作。这里展示了如何使用Lambda表达式结合Stream API对列表进行过滤和遍历操作。
上一篇:java调用第三方接口方法流程
下一篇:java重写和重载的区别
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站