2016-04-10 11 views
1

arraylistからarrayに文字列を割り当てようとするとNullPointerExceptionがスローされるので、私のコードに問題があります。ArrayListからJava配列に文字列を割り当てるとき

String[][] data = new String[idList.size()][]; 
for(int i = 1; i<=idList.size(); i++) { 
    data[i][0] = idList.get(i); 
    data[i][1] = nameList.get(i); 
    data[i][2] = hList.get(i); 
    data[i][3] = sList.get(i); 
    data[i][4] = fList.get(i); 
    data[i][5] = mList.get(i); 
    data[i][6] = osList.get(i); 
    data[i][7] = tsList.get(i); 
    data[i][8] = podList.get(i); 
    data[i][9] = pacList.get(i); 
} 

誰か教えてください。どうすればいいですか?

+0

デバッガで 'data [0]'が 'null 'であることがわかります。私はそれらを初期化することをお勧めします。 –

答えて

1

data[i]はあなたがタイプString[]idList.size()null参照を含むようにdataを初期化するので、nullです。

変更

String[][] data = new String[idList.size()][]; 

長さ10(String[10])のStringアレイにidList.size()参照を含むようにdataを初期化する

String[][] data = new String[idList.size()][10]; 

します。

0

Iは、(両方の次元で)適切にアレイを定義することを示唆している

new String[idList.size()][10]; // you have 10 different lists there... 

ようなもののために、この

new String[idList.size()][]; 

を交換し、ゼロベースとするループで反復..

例:

String[][] data = new String[idList.size()][10]; 
    for (int i = 0; i < idList.size(); i++) { 
     data[i][0] = idList.get(i); 
     data[i][1] = idList.get(i); 
     data[i][2] = idList.get(i); 
     data[i][3] = idList.get(i); 
    }