输入:[aabb,ab,cc,dd,c,cd]
输出:[aabb,ab] [cc,c], [dd],[cd]
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
class Scratch {
public static void main(String[] args) {
List<String> strs = Arrays.asList( "aabb", "ab", "cc", "dd", "c", "cd");
System.out.printf(group(strs).toString());
}
public static List<List<String>> group(List<String> strs) {
HashMap<String, List<String>> map = new HashMap<>();
for (String s : strs) {
char[] cc = s.toCharArray();
String re = new String();
for (int c = 0; c < cc.length; c++) {
String cvalue = String.valueOf(cc[c]);
if (!re.contains(cvalue)) {
re = re + cvalue;
}
}
//key 排序
char[] keyChar = re.toCharArray();
Arrays.sort(keyChar);
String keyStr = new String(keyChar);
if (!map.containsKey(keyStr)){
map.put(keyStr,new ArrayList<>());
}
map.get(keyStr).add(s);
}
return new ArrayList<>(map.values());
}
}