给定两个数组,写一个函数来计算它们的交集。
例子:
给定 num1= [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2]
.
提示:
- 每个在结果中的元素必定是唯一的。
- 我们可以不考虑输出结果的顺序。
第一种方法使用HashMap:
HashMap<Integer, Integer> map=new HashMap<>();
for(int j=0;j<nums1.length;j++) {
for(int i=0;i<nums2.length;i++) {
if(nums1[j]==nums2[i]) {
if(!map.containsKey(nums1[j])) {
map.put(nums1[j], nums2[i]);
break;
}
}
}
}
int num[]=new int[map.size()];
if(map.size()<0) {
return num;
}
Set<Integer> set=map.keySet();
int k=0;
for(Integer n:set) {
num[k]=n;
k++;
}
return num;
第二种方法使用HashSet:
//set不能包含重复元素
Set<Integer> set1=new HashSet<>();
Set<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.add(nums2[i]);
}
int num[]=new int[set2.size()];
if(set2.size()<=0)
return num;
int i=0;
for(Integer n:set2) {
num[i]=n;
i++;
}
return num;
}