public class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
for (String str: strs){
String sortedStr = sortStr(str);
if (map.get(sortedStr) == null) map.put(sortedStr, new ArrayList<String>());
map.get(sortedStr).add(str);
}
List<List<String>> result = new ArrayList<List<String>>(map.values());
for (List<String> res: result){
Collections.sort(res);
}
return result;
}
private String sortStr(String str){
char[] cArray = str.toCharArray();
Arrays.sort(cArray);
return new String(cArray);
}
}
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
for (String str: strs){
String sortedStr = sortStr(str);
if (map.get(sortedStr) == null) map.put(sortedStr, new ArrayList<String>());
map.get(sortedStr).add(str);
}
List<List<String>> result = new ArrayList<List<String>>(map.values());
for (List<String> res: result){
Collections.sort(res);
}
return result;
}
private String sortStr(String str){
char[] cArray = str.toCharArray();
Arrays.sort(cArray);
return new String(cArray);
}
}