我有2个不同的整数数组 int arr1[] = [1,2,3,4] int arr2[] = [2,3,5,6]
如何使用java8的流API从以上2个数组中查找重复项?
将两个数组转换为流。
使用filter()仅保留arr1中也存在于arr2中的元素。
将结果收集到列表中。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class duplicate {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4};
int[] arr2 = {2, 3, 5, 6};
List<Integer> duplicates = Arrays.stream(arr1)
.boxed()
.filter(i -> Arrays.stream(arr2).anyMatch(j -> j == i))
.collect(Collectors.toList());
System.out.println(duplicates);
}
在此输入代码
输出
在上面的代码中:
Arrays.stream(arr1).boxed()
将 int 数组 arr1 转换为 Integer 对象流。
filter()
方法仅保留 arr1 中也存在于 arr2 中的那些数字。
collect()
方法将结果收集到列表中。