Java8新特性:StreamAPI(超详解)
Java 8 引入的 Stream API 是一种新的抽象,可以使用它来处理数据。Stream 使用类似于 SQL 语句的操作来对集合进行查询。
以下是使用 Java 8 Stream API 的一些常见示例:
- 过滤:
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
// 获取长度大于2的字符串
List<String> filtered = strings.stream()
.filter(s -> s.length() > 2)
.collect(Collectors.toList());
- 映射:
List<String> strings = Arrays.asList("1", "2", "3", "4", "5");
// 将字符串转换为整数
List<Integer> mapped = strings.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
- 排序:
List<String> strings = Arrays.asList("abc", "abcd", "", "jkl", "efg", "bc");
// 按字符串长度排序
List<String> sorted = strings.stream()
.sorted(Comparator.comparingInt(String::length))
.collect(Collectors.toList());
- 归约:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 计算所有数字的和
int sum = numbers.stream()
.reduce(0, Integer::sum);
- 并行处理:
List<String> strings = Arrays.asList("abc", "abcd", "", "jkl", "efg", "bc");
// 查找第一个长度大于2的字符串
Optional<String> found = strings.parallelStream()
.filter(s -> s.length() > 2)
.findFirst();
Stream API 提供了一种更高级的抽象,可以以声明式的方式处理数据,使得代码更简洁、易读。
评论已关闭