Java函数式编程概念及示例代码
发布时间:2023-06-15 19:32:12
Java函数式编程是一种编程范式,它将函数作为 类对象,使得可以像操作数据一样操作函数。它的核心概念是Lambda表达式和函数式接口。Lambda表达式是一个匿名函数,它可以被赋值给一个变量,作为参数传递给函数或方法,也可以作为返回值返回。函数式接口是只包含一个抽象方法的接口,它可以作为Lambda表达式的类型,而 Java 的Lambda表达式的类型必须是函数式接口。
示例代码:
1. Lambda表达式示例:
// 定义一个接口
interface MathOperation {
int operate(int a, int b);
}
public class Main {
public static void main(String[] args) {
// 使用Lambda表达式实现加法操作
MathOperation addition = (int a, int b) -> a + b;
// 使用Lambda表达式实现乘法操作
MathOperation multiplication = (a, b) -> a * b;
// 输出结果
System.out.println("10 + 5 = " + addition.operate(10, 5));
System.out.println("10 x 5 = " + multiplication.operate(10, 5));
}
}
2. 函数式接口示例:
@FunctionalInterface
interface GreetingService {
void sayHello(String name);
}
public class Main {
public static void main(String[] args) {
// 使用Lambda表达式实现GreetingService接口
GreetingService greetingService = (name) -> System.out.println("Hello, " + name);
// 输出结果
greetingService.sayHello("world");
}
}
3. 方法引用示例:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] names = {"Alice", "Bob", "Charlie", "Dave"};
// 使用方法引用排序数组
Arrays.sort(names, String::compareToIgnoreCase);
// 输出结果
Arrays.stream(names).forEach(System.out::println);
}
}
4. 流式编程示例:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList(
"apple", "banana", "cherry", "date", "elderberry", "fig");
// 使用流式编程筛选并打印结果
fruits.stream()
.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
}
}
这些示例代码展示了Java函数式编程的常用概念和实现方式。通过Lambda表达式、函数式接口、方法引用和流式编程,Java函数式编程可以实现代码简化、可读性提升、并行处理等优点。
