Given an array of strings, group anagrams together.
Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ]
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List> map = new HashMap<>();
if(strs.length == 0 || strs == null) return null;
for(String s : strs) {
char[] chars = s.toCharArray();
Arrays.sort(chars);
String key = new String(chars);
if(!map.containsKey(key)) map.put(key, new ArrayList<String>());
map.get(key).add(s);
}
List<List<String>> res = new ArrayList(map.values());
return res;
}
}