Intersection of Two Arrays II

给两个数组, 找出相同元素, 数组的元素可能有重复, 返回的数组也可能有重复.

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Map<Integer, Integer> map = new HashMap<>();
        for(int n : nums1) {
            map.put(n, map.getOrDefault(n,0)+1);
        }
        List<Integer> res = new ArrayList<>();
        for(int n : nums2) {
            if(map.containsKey(n)) {
                if(map.get(n) > 0) {
                    map.put(n, map.get(n) - 1);
                    res.add(n);
                }
            } 
        }
        int[] ary = new int[res.size()];
        for(int i = 0 ; i < res.size(); i++) {
            ary[i] = res.get(i);
        }
        return ary;
    }
}