依旧使用到了map这种数据结构value存储各个字母异位词分组key存储每个分组对应的经排序后的字符串。遍历给定的字符串数组取出每个字符串先转化为字符数组利用数组内置函数进行排序再转回为字符串这个实际上就行map要存储的key根据改值检索map若查到取出value即存放各个字母异位词分组的list为list添加当前遍历到的字符串若没有查到新建list再添加当前遍历到的字符串最后都再次存入mapmap的values便是最后所求结果class Solution { public ListListString groupAnagrams(String[] strs) { MapString,ListString res new HashMap(); for(String s : strs){ char[] ch s.toCharArray(); Arrays.sort(ch); String k new String(ch); ListString list res.getOrDefault(k,new ArrayList()); list.add(s); res.put(k,list); } return new ArrayList(res.values()); } }