Java 8 中的 Stream API 提供了一种更加函数式和便捷的方式来处理集合数据。以下是一些常用的 Stream 方法,以及它们的简要说明和对应的例子。
-  filter(Predicate):根据指定的条件过滤集合中的元素。 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); List<Integer> evenNumbers = numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList()); // 输出结果为 [2, 4]
-  map(Function):对集合中的每个元素进行映射转换。 List<String> words = Arrays.asList("hello", "world", "java"); List<Integer> wordLengths = words.stream().map(String::length).collect(Collectors.toList()); // 输出结果为 [5, 5, 4]
-  flatMap(Function):将多个 Stream 合并成一个 Stream。 List<List<Integer>> nestedNumbers = Arrays.asList(Arrays.asList(1, 2),Arrays.asList(3, 4),Arrays.asList(5, 6) ); List<Integer> allNumbers = nestedNumbers.stream().flatMap(List::stream).collect(Collectors.toList()); // 输出结果为 [1, 2, 3, 4, 5, 6]
-  distinct():去除集合中的重复元素。 List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4, 5); List<Integer> distinctNumbers = numbers.stream().distinct().collect(Collectors.toList()); // 输出结果为 [1, 2, 3, 4, 5]
-  sorted():对集合中的元素进行排序。 List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6); List<Integer> sortedNumbers = numbers.stream().sorted().collect(Collectors.toList()); // 输出结果为 [1, 1, 2, 3, 4, 5, 6, 9]
-  limit(long):限制 Stream 的大小。 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> limitedNumbers = numbers.stream().limit(5).collect(Collectors.toList()); // 输出结果为 [1, 2, 3, 4, 5]
-  skip(long):跳过指定数量的元素。 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> skippedNumbers = numbers.stream().skip(5).collect(Collectors.toList()); // 输出结果为 [6, 7, 8, 9, 10]
-  reduce():通过指定的操作对元素进行归约。 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); Optional<Integer> sum = numbers.stream().reduce((a, b) -> a + b); // 输出结果为 15
这些只是 Stream API 中的一部分方法,但是它们是最常用的方法之一。