在 Java 中,对数组过滤的方法有:Java 8 中的流 API:filter() 和 distinct()Apache Commons Lang 的 ArrayUtils:filter() 和 removeDuplicates()自定义过滤函数:Arrays.stream() 和 filter()

Java 中对数组过滤
在 Java 中,可以使用以下方法对数组进行过滤:
1. Java 8 中的流 API
流 API 提供了以下方法进行过滤:
立即学习“Java免费学习笔记(深入)”;
- filter():根据给定谓词过滤元素,返回一个新的流,其中包含满足谓词的元素。
- distinct():从流中移除重复元素。
代码示例:
import java.util.Arrays;
public class ArrayFilter {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 过滤出偶数
int[] evenNumbers = Arrays.stream(numbers)
.filter(n -> n % 2 == 0)
.toArray();
// 过滤出重复元素
int[] distinctNumbers = Arrays.stream(numbers)
.distinct()
.toArray();
}
}2. Apache Commons Lang 的 ArrayUtils
Apache Commons Lang 提供了以下方法进行过滤:
- filter():使用给定的过滤器函数过滤数组元素,返回一个新数组。
代码示例:
import org.apache.commons.lang3.ArrayUtils;
public class ArrayFilter {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 过滤出偶数
int[] evenNumbers = ArrayUtils.filter(numbers, n -> n % 2 == 0);
// 过滤出重复元素
int[] distinctNumbers = ArrayUtils.removeDuplicates(numbers);
}
}3. 自定义过滤函数
还可以创建自定义过滤函数,并使用以下方法将其应用于数组:
- Arrays.stream():将数组转换为流。
- filter():使用自定义过滤函数过滤流。
代码示例:
public class ArrayFilter {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 过滤出偶数
int[] evenNumbers = Arrays.stream(numbers)
.filter(ArrayFilter::isEven)
.toArray();
// 过滤出奇数
int[] oddNumbers = Arrays.stream(numbers)
.filter(ArrayFilter::isOdd)
.toArray();
// 自定义过滤函数
private static boolean isEven(int n) {
return n % 2 == 0;
}
private static boolean isOdd(int n) {
return n % 2 != 0;
}
}
}











