import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums1 int整型一维数组 
     * @param nums2 int整型一维数组 
     * @return int整型一维数组
     */
    public int[] intersection (int[] nums1, int[] nums2) {
        // write code here
        HashMap<Integer, Integer> map=new HashMap<>();
		TreeSet<Integer> list=new TreeSet<>();
		for (int i = 0; i < nums1.length; i++) {
			map.put(nums1[i], map.getOrDefault(nums1[i], 0)+1);
		}
		for (int i = 0; i < nums2.length; i++) {
			if(map.containsKey(nums2[i])) {
				list.add(nums2[i]);
				
			}
		}
		int a[]=new int[list.size()];
		int t=0;
		for (int i : list) {
			a[t]=i;
			t++;
		}
		Arrays.sort(a);
		return a;
    }
}

这题要选对数据结构,可以使用哈希表装nums1的数值,然后用TreeSet装nums2的数值,因为数据结构的性质,里面装的元素不会重复,这正好满足集合的要求,我之前还在使用ArrayList,结果就是答案会出现重复元素