官方题解, 刚看到这题真的一点想法都没有, 太菜了, 还是得看官方题解才能做
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
// 创建一个hashmap来存储, 先把单词的字母进行排序, 然后作为键放入到map中
Map<String, List<String>> map = new HashMap<String, List<String>>();
// 增强for循环遍历数组每一个元素
for (String str : strs) {
// string转换成字符数组
char[] array = str.toCharArray();
// 排序
Arrays.sort(array);
// 转换为字符串
String key = new String(array);
// 获取map中的值, 若没有这个key则返回一个新建的list
List<String> list = map.getOrDefault(key, new ArrayList<String>());
// list中加入此字符串, 然后在map中添加多一个键值对
list.add(str);
map.put(key, list);
}
// 返回map中的值
return new ArrayList<List<String>>(map.values());
}
}