如何在java中声明多个arraylist

时间:2015-08-14 08:16:02

标签: java string arraylist

我有一个问题要声明一个多元的arraylist。 ......错过了正确的语法或混淆了我的想法...

这个工作正常,直到这里,声明一个带阵列的arraylist:

Integer[] arrArray = new Integer[] {1,2,3,4,5};
ArrayList<Integer> arrList = new ArrayList<Integer>();
arrList.addAll(Arrays.asList(arrArray));

也在一行中宣布和宣布:

Integer[] arrArray = new Integer[] {1,2,3,4,5};
ArrayList<Integer> arrList = new ArrayList<Integer>(){{
addAll(Arrays.asList(arrArray));}};

或按元素:

ArrayList<Integer> arrList = new ArrayList<Integer>(){{
add(1);
add(2);
add(3);
}};

但是现在我想做同样的事情,但是现在有多个维度的arraylists(在这种情况下是字符串):

private String[] arrFUSE={"3", "true", "0", "FUSE"};
private String[] arrPLACE={ "2", "true", "7", "PLACE"};
private ArrayList<ArrayList<String>> arrLIST = new ArrayList<ArrayList<String>>(){{
add( Arrays.asList(arrFUSE) );
add( Arrays.asList(arrPLACE) );
}};

另一次尝试

private ArrayList<ArrayList<String>> arrLIST = 
        new ArrayList<ArrayList<String>>(){{
            add(     
                  new ArrayList<String>(){{ addAll(Arrays.asList(arrFUSE))}};
            );
}};

事先感谢。

2 个答案:

答案 0 :(得分:2)

asList返回ArrayList类型

后,尝试将asList结果投射至List
ArrayList<ArrayList<String>> arrLIST = new ArrayList<ArrayList<String>>(){{
    add( (ArrayList<String>) Arrays.asList(arrFUSE) );
    add( (ArrayList<String>) Arrays.asList(arrPLACE) );
    }};

或将声明更改为List

ArrayList<List<String>> arrLIST = new ArrayList<List<String>>(){{
    add( Arrays.asList(arrFUSE) );
    add( Arrays.asList(arrPLACE) );
    }};

由于您正在实施匿名内部类,因此无法找到它在其范围之外的类型。这就是铸造所需要的。

答案 1 :(得分:1)

String[] arrFUSE={"3", "true", "0", "FUSE"};                            
String[] arrPLACE={ "2", "true", "7", "PLACE"};                         
List<List<String>> arrLIST = new ArrayList<List<String>>();             
arrLIST.add( Arrays.asList(arrFUSE) );                                  
arrLIST.add( Arrays.asList(arrPLACE) );

请勿在您创建{的新实例的行上使用ArrayList。如果您这样做,您将在其下面的行上编写自己的ArrayList实现。相反,您只想使用标准ArrayList,因此终止该行并开始新的行。

我还将ArrayList<ArrayList<String>>更改为List<List<String>>,因为您希望能够在其中添加List,而不只是ArrayLists。事实上,Arrays.asList创建的内容不是ArrayList,因此不适合。