两个数组之间的交集

Intersection between two arrays

我在查找 java 中两个数组之间的差异时遇到问题,我的情况就像想象我们有两个数组一样。数组 A = {1 , 3 , 5 , 7 ,9 } 和数组 B = {1 ,3 , 4 ,5 , 6 ,7 , 10}。我想要两个结果第一个结果是一个数组,它从数组 "A" 中找到丢失的对象,第二个结果是一个数组,它在数组 "B" 中找到添加的对象。第一个结果应该像 A'={9},第二个结果像 B'={4,6,10}
谢谢你的评论。

使用这个逻辑

int a1[n1],a2[n2],count1,count2,temp;

for(i=0;i<n1;i++)
{ temp=0;
  for(j=0;j<n2;j++)
   {
     if(A[i]==B[j])
      temp=1;
   }
 if(temp==0)
  {a1[count1]=A[i];
  count1++;
  }
}

for(i=0;i<n2;i++)
{ temp=0;
  for(j=0;j<n1;j++)
   {
     if(A[i]==B[j])
      temp=1;
   }
 if(temp==0)
  {a2[count2]=B[i];
  count2++;
  }
}

现在数组 a1[] 包含在 A[] 中但不在 B[] 中的元素,并且 a2[] 包含在 B[] 中但不在 A[] 中的元素。

我认为以下代码对您有帮助

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{

    // your code goes here
    Map<Integer,Integer> map1=new HashMap<Integer,Integer>();
    int A[]={1 , 3 , 5 , 7 ,9 };
    int B[]={1 ,3 , 4 ,5 , 6 ,7 , 10};
    int i;
    for(i=0;i<B.length;i++)
    map1.put(B[i],1);
    for(i=0;i<A.length;i++)
    {

            Integer v1=map1.get(A[i]);
        if(v1==null)
        {

            System.out.println("Missing number="+A[i]);
        }

    }

    for(i=0;i<A.length;i++)
    {

        Integer v1=map1.get(A[i]);

        if(v1!=null)
        {int val=v1;
            map1.put(A[i],val+1);

    //      System.out.println("Missing number="+A[i]);
        }

    }
    for(i=0;i<B.length;i++)
    {
            Integer v1=map1.get(B[i]);
        if(v1!=null && v1<2)
        {

            System.out.println("Added element in B="+B[i]);
        }

    }


}
}

使用全部删除:

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

    ArrayList<Integer> c = new ArrayList<>(a);
    ArrayList<Integer> d = new ArrayList<>(b);


    c.removeAll(b);
    d.removeAll(a);

    System.out.println(c);
    System.out.println(d);