0

これは私のコードです:

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

実行すると、「[エラー] - キャッチされていない例外がエスケープされました」と表示されます。List> を String[][] に変換する方法は?

4

2 に答える 2

1

If i understood you correctly this is what you want (more or less)

List<String> list = ..;
String[] array = list.toArray(new String[list.size()]);

But anyway. Your logic is completely wrong, you have "array in array in array in array array in array in array of array in array" .. you get me ?.

于 2013-03-31T18:06:21.190 に答える
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]
于 2013-03-31T19:12:27.830 に答える