class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<>();
for(int i=0;i<nums1.length;i++){
set.add(nums1[i]);
}
Set<Integer> ans = new HashSet<>();
for(int i=0;i<nums2.length;i++){
if(set.contains(nums2[i])){
ans.add(nums2[i]);
}
}
return ans.stream().mapToInt(x->x).toArray();
}
}
1.用到了Set集合,要学会集合操作方法,Set集合没有特殊的操作方法,都是Collection的那些方法。
2.学会基本数据类型数组,包装类数组,集合之间的相互转化
// 集合->包装类数组
Integer[] arr_integer = list.toArray(new Integer[0])
// 包装类数组->基本数据类型数组(借用stream流)
int[] arr_int = Arrays.stream(arr_integer).mapToInt(x->x).toArray()
// 集合->基本数据类型数组
int[] arr_int = list.stream().mapToInt(x->x).toArray()
// 基本类型数组->集合
for(int i : arr_int ){
set.add(i);
}
// 或者
//转换为 IntStream,装箱,收集为set
Set<Integer> set = Arrays.stream(arr_int).boxed().collect(Collectors.toSet())
// 基本数据类型数组->包装类数组
Integer[] arr_integer = Arrays.stream(arr_int).boxed().toArray(Integer[]::new)
https://blog.csdn.net/m0_37220730/article/details/107803763