1. Java Stream API简介
Java 8引入的Stream API,为操作集合提供了一种新的抽象方式。它支持对集合进行函数式和声明式操作,从而可以轻松地编写出高效且易于理解的代码。Stream API支持并行操作,即使在处理海量数据时也能保证程序的性能。
Stream API 的一个主要设计目标是将其功能打造得高效且易于使用,并使其适用于多种场景。Stream API 支持多种操作,例如聚集、分组和过滤,其中过滤操作是我们本篇文章要重点介绍的一种。
2. Java Stream API Filter概述
Filter操作是Stream API中的一种操作。它可以根据指定的条件过滤集合中的元素,只保留符合条件的元素。
Stream API 提供了 filter() 方法基于给定的 Boolean条件过滤元素。每一个 Intermediate 操作都会返回一个新的 Stream(译者注:中间操作会返回一个新的流,供下一个操作使用)。 filter() 方法以一个 Predicate 为参数,Predicate是一个函数接口,用于判断并保留符合条件的元素。以下是 filter() 方法的基本语法:
Stream filter(Predicate super T> predicate)
在这里,predicate 是一个接受 T 类型的输入参数,并返回布尔值的Lambda表达式。如果 Lambda 返回 true,则 filter() 方法就会保留该元素。
3. Java Stream API Filter使用方法
3.1 过滤字符串数组中长度大于5的字符串
下面的示例展示了如何使用filter()操作过滤字符串数组中长度大于5的字符串:
String[] strArray = {"Apple", "Banana", "Orange", "Pear", "Grape"};
Stream stream = Arrays.stream(strArray);
stream.filter(str -> str.length() > 5).forEach(str -> System.out.println(str));
输出结果如下:
Banana
Orange
在此示例中,我们使用 stream() 方法将字符串数组转换为一个 Stream。然后使用过滤器 filter() 操作过滤掉所有长度小于或等于 5 的元素,并使用 forEach() 操作输出结果。
3.2 过滤整数数组中的偶数
下面的示例展示了如何使用filter()操作过滤整数数组中的偶数:
int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
IntStream intStream = Arrays.stream(intArray);
intStream.filter(i -> i % 2 == 0).forEach(i -> System.out.println(i));
输出结果如下:
2
4
6
8
10
在此示例中,我们使用 stream() 方法将整数数组转换为一个 IntStream,并使用过滤器 filter() 操作过滤掉整数数组中的所有偶数,并使用 forEach() 操作输出结果。
4. Java Stream API Filter小结
在Java Stream API中,Filter操作是一种高效简单的集合过滤器。它可以根据指定的条件过滤集合中的元素,只保留符合条件的元素。通过学习本篇文章,您现在已经掌握了Java Stream API中Filter操作的使用方法和注意事项。