У меня есть метод, пытающийся транспонировать Arraylist, содержащий Arraylist строки, называемый matrix и вернуть новый массив. < /p>
Я нашел транспонированные значения в Java 2D ArrayList, но, похоже, это для массивов, а не массивов. Мой 2D -массив имеет неизвестные размеры, прямоугольные или, возможно, нерегулярные (но никогда не квадратные). < /P>
Моя идея состояла в том, чтобы прочитать каждый внутренний массив и добавить элементы во внутренние массивы исходящей матрицы. < /P>
public static ArrayList transpose (ArrayList matrixIn){
ArrayList matrixOut = new ArrayList();
//for each row in matrix
for (int r = 0; r < matrixIn.size(); r++){
ArrayList 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 matrixOutRow = matrixOut.get(c);
//add new one
matrixOutRow.add(innerIn.get(c));
//reset to matrixOut
matrixOut.set(c,matrixOutRow);
}
}
return matrixOut;
}
< /code>
Я получаю ошибку "indexoutofboundsexception: index: 0, size: 0" при < /p>
//get matrixOut[v]
ArrayList matrixOutRow = matrixOut.get(v);
< /code>
Что я делаю не так с этой штукой? < /p>
Подробнее здесь: https://stackoverflow.com/questions/280 ... ng-in-java
Transpose Arraylist > в Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение