我在用Java开发的类似棋盘游戏的游戏中有一个ArrayList,我把这个ArrayList格式化为正方形,因此(数字是索引);
/*
* |0 |1 |2 |3 |
* |4 |5 |6 |7 |
* |8 |9 |10|11|
* |12|13|14|15|
*/
我想要做的是拿这个ArrayList并旋转它;
例如turn()将输出(基于原始索引)
/*
* |0 |4 |8 |12|
* |1 |5 |9 |13|
* |2 |6 |10|14|
* |3 |7 |11|15|
*/
我目前的方法是使用我编写的getRow()函数将ArrayList分解为行并手动将行写回
答案 0 :(得分:1)
for(int i = 0; i < 4; ++i){
for(int j = i; j < 4; ++j){
int t1 = al.get(i).get(j);
al.get(i).set(j, al.get(j).get(i));
al.get(j).set(i, t1);
}
}
它被称为矩阵转置。