查找两个数组的相同元素

时间:2020-12-28 14:43:10

public static Set<Integer> getIds(Integer[] a, Integer[] b){
      
      Set<Integer> same = new HashSet<Integer>();  //用来存放两个数组中相同的元素
      Set<Integer> temp = new HashSet<Integer>();  //用来存放数组a中的元素
      
      for (int i = 0; i < a.length; i++) {
          temp.add(a[i]);   //把数组a中的元素放到Set中,可以去除重复的元素
      }
      
      for (int j = 0; j < b.length; j++) {
        //把数组b中的元素添加到temp中
        //如果temp中已存在相同的元素,则temp.add(b[j])返回false
        if(!temp.add(b[j]))
            same.add(b[j]);
    }
    return same;
  }


  public static void main(String[] arg){
        Integer[] array1 = {1,2,3,4,1,2,4,6,7,8,10,22,33};
        
        Integer[] array2 = {1,2,3,4,1,2,4,6,7,8,10,22,33,55,66,77,88,99};
        
        Set<Integer> sameElementSet = getIds(array1,array2);
        
        for(Integer i : sameElementSet) {
        
        System.out.println(i);
        
        }
  }