import java.util.ArrayList; import java.util.HashMap; class Solution { public int[] intersect(int[] nums1, int[] nums2) { HashMap map = new HashMap<>(); for (int i : nums1) { map.put(i, map.getOrDefault(i, 0) + 1); } ArrayList list = new ArrayList<>(); for (int i : nums2) { if (map.get(i) != null && map.get(i) > 0) { list.add(i); map.put(i, map.get(i) - 1); } } int[] ret = new int[list.size()]; for (int i = 0; i < list.size(); i++) { ret[i] = list.get(i); } return ret; } }