[英]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.