Medium
好几个String, HashMap的API不是很熟悉,但非常实用,记一下吧:
- char[] 和 String的互相转换
char[] chas = s.toCharArray();
String keyStr = String.valueOf(chas);
- 遍历hashmap的所有key
map.keySet()
-
将map.values()以 ArrayList<List<String>>类型返回
这里主要是要知道ArrayList的一个构造函数:
熟悉一下HashMap其他的api
逻辑很简单,没什么好说的,感觉完全在考api
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> res = new ArrayList<>();
if (strs == null || strs.length == 0){
return res;
}
Map<String, List<String>> map = new HashMap<>();
for (String s : strs){
char[] chas = s.toCharArray();
Arrays.sort(chas);
String keyStr = String.valueOf(chas);
if (!map.containsKey(keyStr)){
map.put(keyStr, new ArrayList<String>());
}
map.get(keyStr).add(s);
}
for (String s : map.keySet()){
Collections.sort(map.get(s));
}
return new ArrayList<List<String>>(map.values());
}
}