349. Intersection of Two Arrays

2017-10-03  本文已影响0人  namelessEcho

因为要求唯一,所以可以用两个set。
For each 方法是实现了iteratable()接口的集合下面方法的等效。
while(iterator.hasNext())
{
iterator.next();
}
HashSet遍历方法是使用迭代器,也可以使用For each 。

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        HashSet<Integer> set1 = new HashSet<>();
        HashSet<Integer> set2 = new HashSet<>();
        for(int i = 0 ;i<nums1.length;i++)
        {
            set1.add(nums1[i]);
        }
        for(int i = 0 ;i<nums2.length;i++)
        {
            if(set1.contains(nums2[i])&&!set2.contains(nums2[i]))
                 set2.add(nums2[i]);
        }
        int[] array = new int [set2.size()];
        Iterator<Integer> ite = set2.iterator();
        int count =0;
        while(ite.hasNext())
        {
            array[count++]=ite.next();
        }
        return array;
    }
}

也可以使用For each

class Solution {
  public int[] intersection(int[] nums1, int[] nums2) {
      HashSet<Integer> set1 = new HashSet<>();
      HashSet<Integer> set2 = new HashSet<>();
      for(int i = 0 ;i<nums1.length;i++)
      {
          set1.add(nums1[i]);
      }
      for(int i = 0 ;i<nums2.length;i++)
      {
          if(set1.contains(nums2[i])&&!set2.contains(nums2[i]))
               set2.add(nums2[i]);
      }
      int[] array = new int [set2.size()];
      int count =0;
      for(Integer num :set2)
      {
          array[count++]=num;
      }
      return array;
  }
}
上一篇下一篇

猜你喜欢

热点阅读