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;
}
}