本题中考察了:HashMap的使用,把字符串放入char类型数组,Arrays.sort()可以给char类型数组排序,List<>()的创建,char类型数组转为字符串。
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
创建一个map,里面的键为排好序的字符串,值为list列表
Map<String,List<String>> map = new HashMap<>();
for(String str:strs){
把字符串转为char字符数组
char []array = str.toCharArray();
Arrays.sort()可以对字符数组排序
Arrays.sort(array);
把排好序的数组转为String类型
String key = new String(array);
存入map中,如果当前key不为空,获取他的List集合,若为空定义一个新的ArrayList<>()
List<String>list = map.getOrDefault(key,new ArrayList<String>());
在list中加入当前字符串
list.add(str);
再放入map 集合
map.put(key,str);
}
return new ArrayList<List<String>>(map.values());
}
}