如何将字符串的ArrayList转换为字符串ArrayList的ArrayList,并将相同长度的字符串组合成一个列表

时间:2016-04-02 06:54:28

标签: arraylist hashmap

我有一个字符串数组列表(数组列表中的每个单独元素只是一个没有空格的单词),我想在不同的ArrayLists中对相同的长度元素进行分组。

所以说数组列表有

element 0 = "abcd"
element 1 = "ansd,"
element 2 = "bac"
element 3 = "abc"
element 4 = "cab"

我的结果应该是ArrayList(ArrayList(String)) - > {{“abcd”,“ansd”},{“bac”,“abc”,“cab”}}

1 个答案:

答案 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());
}

}

如果有人有更好的解决方案,请发帖。