繁体   English   中英

如何在java中声明多个arraylist

[英]How to declare a multiple arraylist in java

我在声明多个数组列表时遇到问题。 ... 缺少正确的语法或混淆了我的想法 ...

这工作正常,直到这里,用数组声明一个数组列表:

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);
}};

但现在我想做同样的事情,但现在使用多维数组列表(在这种情况下为字符串):

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))}};
            );
}};

先谢谢了。

尝试将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) );
    }};

由于您正在立即实现匿名内部类,因此无法找出存在于其范围之外的类型。 这就是需要铸造的地方。

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所以它不适合其他地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM