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

Java函数:如何使用Stream流操作

发布时间:2023-07-01 13:21:18

在Java中,Stream是一种用于操作集合数据的工具,它是Java 8中引入的一个新特性。使用Stream流操作可以更加简洁和优雅地操作集合数据,可以对数据进行筛选、映射、排序、聚合等操作。

首先,需要通过集合类的stream()方法来获取一个Stream流对象,然后可以对该流对象进行一系列操作。

例如,假设有一个包含一组整数的List集合,我们要筛选出大于10的元素,并把它们加倍输出。

可以通过以下代码实现:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

list.stream()

    .filter(i -> i > 10)

    .map(i -> i * 2)

    .forEach(System.out::println);

上述代码首先获取了一个包含整数1到10的List集合,然后通过stream()方法获取了一个Stream流对象。接着使用filter()方法筛选出大于10的元素,再使用map()方法将筛选出的元素加倍,最后使用forEach()方法遍历并输出结果。

除了上述的筛选和映射操作,Stream流还有许多其他的操作方式,比如排序、聚合、限制元素个数等。

在排序操作中,可以通过sorted()方法对元素进行排序:

list.stream()

    .sorted()

    .forEach(System.out::println);

在聚合操作中,可以通过reduce()方法对元素进行求和、求最大值、求最小值等:

int sum = list.stream()

    .reduce(0, (a, b) -> a + b);

System.out.println(sum);

int max = list.stream()

    .reduce(0, Integer::max);

System.out.println(max);

int min = list.stream()

    .reduce(0, Integer::min);

System.out.println(min);

在限制元素个数的操作中,可以通过limit()方法来限制获取的元素个数:

list.stream()

    .limit(5)

    .forEach(System.out::println);

Stream流的操作十分灵活,可以根据不同的需求进行组合和拼接。通过合理地使用Stream流操作,可以使代码更加简洁、高效和易于维护。

需要注意的是,Stream流的操作是惰性求值的,即只有当遇到终止操作(如forEach、reduce等)时才会真正执行流的操作。这种特性可以提高程序的性能和效率。

综上所述,使用Stream流操作可以更加方便快捷地对集合数据进行筛选、映射、排序、聚合等操作。同时,需要注意合理地使用流的操作方式,以提高程序的效率。