我有一个方法试图转置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