题目:给定两个数组,编写一个函数来计算它们的交集。
这个题目翻译过来就是两个数组中相同的元素有哪些?
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
if(nums1==null||nums2==null){//若有一个数组为空,就没有交集
return null;
}
//去重
Set<Integer> set1 = new HashSet<>();
for(int i = 0 ; i < nums1.length ; i++){
set1.add(nums1[i]);
}
Set<Integer> set2 = new HashSet<>();
for(int i = 0 ; i < nums2.length ; i++){
set2.add(nums2[i]);
}
//保留set1集合中包含在set2集合中的元素
set1.retainAll(set2);
int i = 0;
int res[] = new int[set1.size()];
for(int n : set1){//因为set和hashset中没有方法可以得到当前下标对应元素,所以用foreach循环
res[i]=n;
i++;
}
return res;
}
}