我有一個方法試圖轉置ArrayList包含一個ArrayList的字符串,名爲矩陣並返回新的數組。我發現Transposing Values in Java 2D ArrayList,但它看起來像是數組而不是ArrayList。我的2D陣列具有未知尺寸,可能是矩形或可能不規則(但從不是方形)。Transpose ArrayList <ArrayList <String>> in Java
我的想法是讀取每個內部數組,並將這些項追加到輸出矩陣的內部數組中。
public static ArrayList<ArrayList<String>> transpose (ArrayList<ArrayList<String>> matrixIn){
ArrayList<ArrayList<String>> matrixOut = new ArrayList<>();
//for each row in matrix
for (int r = 0; r < matrixIn.size(); r++){
ArrayList<String> innerIn = matrixIn.get(r);
//for each item in that row
for (int c = 0; c < innerIn.size(); c++){
//add it to the outgoing matrix
//get matrixOut current value
ArrayList<String> matrixOutRow = matrixOut.get(c);
//add new one
matrixOutRow.add(innerIn.get(c));
//reset to matrixOut
matrixOut.set(c,matrixOutRow);
}
}
return matrixOut;
}
我得到一個 「拋出IndexOutOfBoundsException:指數:0,大小:0」 錯誤在
//get matrixOut[v]
ArrayList<String> matrixOutRow = matrixOut.get(v);
我在做什麼不對的事嗎?
'size:0'表示列表中沒有元素。 – 2015-01-21 00:35:27
這是編譯? ArrayList> matrixOut = new ArrayList <>();和matrixOut是空列表 –
nayakam
2015-01-21 00:43:01