两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。
说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
/**
* 两个数组的交集:使用Set集合:不允许出现相同的元素,不区分元素的顺序(其内部存储结构的特点)。
* @param nums1
* @param nums2
* @return
*/
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> record = new HashSet<Integer>();
//遍历一遍nums1数组,将元素放入record的set集合中
for(int num : nums1) {
record.add(num);
}
//遍历一遍nums2数组,将重复元素放进resultSet的set集合中
Set<Integer> resultSet = new HashSet<Integer>();
for(int i =0;i<nums2.length;i++){
if(record.contains(nums2[i])){
resultSet.add(nums2[i]);
}
}
//将resultSet的Set集合转换为一个数组
//Iterator<Integer> iterator = resultSet.iterator();
// Object[] resultArr = resultSet.toArray();
// int[] res = new int[resultArr.length];
int[] result = new int[resultSet.size()];
int index = 0;
for(int it : resultSet){
result[index] = it;
index ++;
}
return result;
}