流操作
# 流操作示例
以下是一个使用Java 8的List流操作示例:
假设我们有一个包含整数的List,我们可以使用以下流操作:
- 过滤操作:筛选出所有大于10的数字
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
List<Integer> filteredNumbers = numbers.stream()
.filter(n -> n > 10)
.collect(Collectors.toList());
- 映射操作:将每个数字都乘以2
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
List<Integer> mappedNumbers = numbers.stream()
.map(n -> n * 2)
.collect(Collectors.toList());
- 排序操作:按降序排列数字
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
- 统计操作:获取数字的总和
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
int sum = numbers.stream()
.mapToInt(Integer::intValue)
.sum();
- 匹配操作:检查是否所有数字都大于10
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
boolean allGreaterThanTen = numbers.stream()
.allMatch(n -> n > 10);
- 查找操作:查找第一个大于10的数字
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20, 25);
Optional<Integer> firstGreaterThanTen = numbers.stream()
.filter(n -> n > 10)
.findFirst();
- 归约操作:计算数字的乘积
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int product = numbers.stream()
.reduce(1, (a, b) -> a * b);
这些示例展示了如何使用Java 8的List流操作进行常见的数据处理任务。