JavaStream中常用函数及使用方法
发布时间:2023-07-06 03:16:33
JavaStream中常用函数及使用方法:
1. filter()函数: filter()函数用于根据指定的条件对流中的元素进行过滤。它接受一个Predicate参数,返回一个新的流,其中包含原始流中满足条件的元素。
示例代码:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出:[2, 4, 6, 8, 10]
2. map()函数: map()函数用于对流中的每个元素进行转换。它接受一个Function参数,返回一个新的流,其中包含对原始流中每个元素应用指定函数后的结果。
示例代码:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squaredNumbers); // 输出:[1, 4, 9, 16, 25]
3. flatMap()函数: flatMap()函数用于将一个流中的每个元素转换为一个新的流,并将所有新流中的元素合并到一个流中。它接受一个Function参数,返回一个新的流。
示例代码:
List<List<Integer>> numbers = Arrays.asList(Arrays.asList(1, 2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9));
List<Integer> flattenedNumbers = numbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flattenedNumbers); // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
4. distinct()函数: distinct()函数用于去除流中重复的元素,返回一个新的流。
示例代码:
List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 5, 5);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(distinctNumbers); // 输出:[1, 2, 3, 4, 5]
5. sorted()函数: sorted()函数用于对流中的元素进行排序。它接受一个Comparator参数,返回一个新的流。
示例代码:
List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 6);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 输出:[1, 2, 5, 6, 8]
这些只是JavaStream中常用的函数和使用方法的一小部分。JavaStream还提供了很多其他的函数,如reduce()、collect()、forEach()等等,可以根据具体的需求选择合适的函数进行操作。通过合理使用这些函数,可以简化代码,提高开发效率。
