c语言编程笔录

首页 >   > 笔记大全

笔记大全

JAVA中stream流的基础处理方法有哪些

更新时间:2023-12-14

什么是Stream流

Stream是Java 8提供的一个新的抽象层,通过使用Stream可以简化集合的处理、聚合、过滤、映射等操作。Stream流可以并行化处理大量数据,提高程序的执行效率。Stream流并不存储数据,而是操作数据源后将结果返回。

流的基础方法

Stream流提供了许多基础的方法,用于对数据集合进行不同类型的处理。下面介绍几个常用的基础处理方法:

1. filter()

filter()方法用于过滤流中的元素,只保留符合条件的元素。它接受一个Predicate函数式接口作为参数,该接口用于判断元素是否符合条件。

List numbers = Arrays.asList(1, 2, 3, 4, 5);
List evenNumbers = numbers.stream()
                                    .filter(n -> n % 2 == 0)
                                    .collect(Collectors.toList());
// 输出结果:[2, 4]

2. map()

map()方法用于对流中的元素执行某个操作,并将结果返回。它接受一个Function函数式接口作为参数,该接口用于定义操作的逻辑。

List names = Arrays.asList("Tom", "Jerry", "Alice");
List upperCaseNames = names.stream()
                                    .map(String::toUpperCase)
                                    .collect(Collectors.toList());
// 输出结果:["TOM", "JERRY", "ALICE"]

3. distinct()

distinct()方法用于去除流中的重复元素,只保留唯一的元素。它根据元素的equals()方法来判断元素是否相等。

List numbers = Arrays.asList(1, 2, 2, 3, 3, 3);
List distinctNumbers = numbers.stream()
                                        .distinct()
                                        .collect(Collectors.toList());
// 输出结果:[1, 2, 3]

4. sorted()

sorted()方法用于对流中的元素进行排序,默认是按照元素的自然顺序进行排序。它可以接受一个Comparator函数式接口作为参数,自定义排序规则。

List numbers = Arrays.asList(4, 2, 5, 1, 3);
List sortedNumbers = numbers.stream()
                                    .sorted()
                                    .collect(Collectors.toList());
// 输出结果:[1, 2, 3, 4, 5]

总结

Stream流的基础处理方法包括filter()、map()、distinct()和sorted()等。这些方法分别用于过滤元素、对元素进行操作、去除重复元素和排序。通过使用这些方法,可以方便地对数据集合进行各种操作和处理。同时,Stream流还提供了许多其他的方法,如reduce()、collect()等,可以根据具体的需求进行使用。