这是我的代码:
List<List<String[]>> myBigList=new ArrayList<List<String[]>>();
String[] s11={"A","30"};
String[] s12={"B","20"};
List<String[]> l1=new ArrayList<String[]>();
l1.add(s11);
l1.add(s12);
String[] s21={"B","10"};
String[] s22={"B","20"};
List<String[]> l2=new ArrayList<String[]>();
l2.add(s21);
l2.add(s22);
String[] s31={"C","2"};
String[] s32={"A","10"};
String[] s33={"A","3"};
List<String[]> l3=new ArrayList<String[]>();
l3.add(s31);
l3.add(s32);
l3.add(s33);
myBigList.add(l1);
myBigList.add(l2);
myBigList.add(l3);
String[][] test2DArr=new String[2][myBigList.size()];
myBigList.toArray(test2DArr);
运行时说“[ERROR] - 未捕获的异常转义” 那么如何转换List&gt;到String [] []?
答案 0 :(得分:1)
如果我理解正确,这就是你想要的(或多或少)
List<String> list = ..;
String[] array = list.toArray(new String[list.size()]);
但无论如何。你的逻辑是完全错误的,你有“数组中的数组中的数组,数组中的数组中的数组中的数组”,你得到了我吗?
答案 1 :(得分:1)
假设(这并不容易......)任何人都会遇到类似的问题,将List<List<String[]>>
转换为String[][][]
的工作解决方案将是:
// List<List<String[]>> myBigList = new ArrayList<List<String[]>>();
String[][][] amyBigArray = new String[myBigList.size()][][];
for (int i = 0; i < myBigList.size(); i++) {
int innerSize = myBigList.get(i).size();
String[][] innerArray = new String[innerSize][];
for (int j = 0; j < innerSize; j++) {
innerArray[j] = myBigList.get(i).get(j);
}
amyBigArray[i] = innerArray;
}
可以打印:
for (String[][] strings : amyBigArray) {
for (String[] strings3 : strings) {
System.out.println(Arrays.toString(strings3));
}
}
并为给出的问题输入提供正确的输出:
[A, 30]
[B, 20]
[B, 10]
[B, 20]
[C, 2]
[A, 10]
[A, 3]