java8函数式编程 demo 实现
时间: 2024-10-22 21:07:11 浏览: 18
函数式编程以及lambda表达式技术分享Demo
Java 8 引入了函数式编程特性,使得编写简洁、易读的代码成为可能。下面是一个简单的例子,展示了如何使用Lambda表达式和Stream API处理列表:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FunctionalProgrammingDemo {
public static void main(String[] args) {
// 创建一个整数列表
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
// 使用 Lambda 表达式过滤偶数并计算和
int sumOfEvenNumbers = numbers.stream()
.filter(num -> num % 2 == 0)
.mapToInt(Integer::intValue) // 转换为int流
.sum();
System.out.println("Sum of even numbers: " + sumOfEvenNumbers);
// 使用Lambda表达式找到最大值
OptionalInt maxNumber = numbers.stream()
.max(Integer::compareTo); // 比较数字大小
if (maxNumber.isPresent()) {
System.out.println("Max number: " + maxNumber.getAsInt());
} else {
System.out.println("No numbers found in the list.");
}
}
}
```
在这个例子中,
- `stream()` 把集合转换为流(Stream),可以对其中的元素进行操作。
- `filter()` 过滤出满足条件的元素(这里是偶数)。
- `mapToInt()` 将流转换回Int流,以便于求和。
- `sum()` 计算所有偶数的总和。
- `max()` 找到最大的数,返回一个OptionalInt。
阅读全文