public int findLength(int[] a, int[] b) {
        if (a == null || b == null || a.length == 0 || b.length == 0)
            return 0;
        Map<Integer, List<Integer>> map = new HashMap<>();
        for (int i = 0; i < a.length; i++) {
            if (!map.containsKey(a[i]))
                map.put(a[i], new ArrayList<>());
            map.get(a[i]).add(i);
        }
        int max = 0;
        for (int i = 0; i < b.length; i++) {
            if (map.containsKey(b[i])) {
                List<Integer> list = map.get(b[i]);
                for (Integer e : list) {
                    max = Math.max(max, count(e, a, i, b, max));
                }
            }
        }
        return max;
    }
Why Did you create this class? what does it do?
src/problems/medium/MaximumLengthOfRepeatedSubArray.java