“旋转”一个ArrayList <integer> </integer>

时间:2014-08-10 12:01:06

标签: java algorithm arraylist

我在用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分解为行并手动将行写回

1 个答案:

答案 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);
        }
    }

它被称为矩阵转置。