我有一个字符串数组列表(数组列表中的每个单独元素只是一个没有空格的单词),我想在不同的ArrayLists中对相同的长度元素进行分组。
所以说数组列表有
element 0 = "abcd"
element 1 = "ansd,"
element 2 = "bac"
element 3 = "abc"
element 4 = "cab"
我的结果应该是ArrayList(ArrayList(String)) - > {{“abcd”,“ansd”},{“bac”,“abc”,“cab”}}
答案 0 :(得分:0)
没关系,我找到了解决方案。 此问题有点类似于查找String中重复字符的数量。 这是我的问题的解决方案。
public static void main(String[] args){
ArrayList<String> A= new ArrayList<String>();
A.add("abc");
A.add("bac");
A.add("abcd");
A.add("cabd");
ArrayList(ArrayList(String)) C=new ArrayList(ArrayList(String))();
HashMap(Integer, ArrayList(String)) hm1= new HashMap(Integer, ArrayList(String))();
for (int i=0;i is less than A.size();i++){
ArrayList<String> B;
if (!hm1.containsKey(A.get(i).length())){
B=new ArrayList<String>();
B.add(A.get(i));
hm1.put(Integer.valueOf(A.get(i).length()), B);
}
else
hm1.get(A.get(i).length()).add(A.get(i));
}
for (Map.Entry m: hm1.entrySet()){
C.add((ArrayList<String>) m.getValue());
}
}
如果有人有更好的解决方案,请发帖。