Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
易位構詞游戲的英文詞匯是 anagram,這個詞來源於有“反向”或“再次”的含義的希臘語字根ana-和有“書寫”、“寫下”的意思的詞根grahpein。易位構詞是一類文字游戲(更准確地說是一類“詞語游戲”),是將組成一個詞或短句的字母重新排列順序,原文中所有字母的每次出現都被使用一次,這樣構造出另外一些新的詞或短句。http://zh.wikipedia.org/wiki/%E6%98%93%E4%BD%8D%E6%9E%84%E8%AF%8D%E6%B8%B8%E6%88%8F
public Listanagrams(String[] strs) { List list = new ArrayList (); Map > map = new HashMap >(); for(String str : strs){ char[] ch = str.toCharArray(); Arrays.sort(ch); String s = new String(ch); if(map.containsKey(s)) map.get(s).add(str); else{ List li = new ArrayList (); li.add(str); map.put(s,li); } } for(List ls : map.values()){ if(ls.size() > 1) list.addAll(ls); } return list; }