public List<String> anagrams(String[] strs) {
        List<String> res = new ArrayList<String>();
        if (strs.length == 1 || strs.length == 0)
            return res;
        HashMap<String, ArrayList<Integer>> hashMap = new HashMap<String, ArrayList<Integer>>();
        for (int i = 0; i < strs.length; ++i) {
            char[] str = strs[i].toCharArray();
            Arrays.sort(str);
            String s = String.valueOf(str);
            if (hashMap.containsKey(s)) {
                hashMap.get(s).add(i);
            } else {
                hashMap.put(s, new ArrayList<Integer>());
                hashMap.get(s).add(i);
            }
        }
        for (Map.Entry<String, ArrayList<Integer>> entry : hashMap.entrySet()) {
            if (entry.getValue().size() == 1)
                continue;
            for (int i = 0; i < entry.getValue().size(); ++i) {
                res.add(strs[entry.getValue().get(i)]);
            }
        }
        return res;
    }