欢迎访问宙启技术站
智能推送

Java中使用Stream流处理集合数据

发布时间:2023-09-18 12:44:15

Java中的Stream流是Java 8中引入的一个新特性,它提供了一种便捷的方式来处理集合数据。Stream流可以让我们以一种更简洁、更可读的方式对集合进行操作,提高了代码的可读性和可维护性。

Stream流有两种类型:顺序流和并行流。顺序流是按照集合中元素的顺序一次处理每个元素,这种方式比较适合处理不需要并发的情况。而并行流则是将集合中的元素进行并行处理,可以提高代码的执行效率。

Stream流的操作可以分为两种:中间操作和终端操作。中间操作是对数据的处理过程,可以有多个中间操作连接在一起形成一个流水线。而终端操作是最终产生结果的操作,一个流只能有一个终端操作。常见的中间操作有filter、map、sorted等,而常见的终端操作有forEach、collect、count等。

下面以一个示例来演示如何使用Stream流处理集合数据:

import java.util.Arrays;
import java.util.List;

public class StreamExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Emma");

        // 使用filter中间操作过滤出长度大于3的元素
        names.stream()
                .filter(name -> name.length() > 3)
                .forEach(System.out::println);

        // 使用map中间操作将每个元素转为大写
        names.stream()
                .map(String::toUpperCase)
                .forEach(System.out::println);

        // 使用sorted中间操作按字母顺序排序
        names.stream()
                .sorted()
                .forEach(System.out::println);

        // 使用count终端操作统计元素个数
        long count = names.stream()
                .count();
        System.out.println(count);

        // 使用collect终端操作将流转为List集合
        List<String> resultList = names.stream()
                .filter(name -> name.length() > 3)
                .collect(Collectors.toList());

        System.out.println(resultList);
    }
}

以上代码通过使用filter、map、sorted等中间操作和forEach、count、collect等终端操作,实现了对集合数据的过滤、转换、排序、统计和集合转换等操作。

使用Stream流处理集合数据的好处是可以将逻辑清晰地表达出来,使代码更加简洁、易读、易于维护。通过利用Stream流的各种中间操作和终端操作,可以实现各种复杂的集合操作,提高代码的效率和可靠性。