使用流 API 从 2 个不同的整数数组中查找重复项

问题描述 投票:0回答:1

我有2个不同的整数数组 int arr1[] = [1,2,3,4] int arr2[] = [2,3,5,6]

如何使用java8的流API从以上2个数组中查找重复项?

java java-8 integer java-stream
1个回答
1
投票
  • 将两个数组转换为流。

  • 使用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()
方法将结果收集到列表中。

© www.soinside.com 2019 - 2024. All rights reserved.