【问题标题】:"Rotating" a ArrayList<Integer>“旋转”一个 ArrayList<Integer>
【发布时间】:2014-08-10 12:01:06
【问题描述】:

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

【问题讨论】:

标签: java algorithm arraylist


【解决方案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);
        }
    }

称为矩阵转置。

【讨论】:

    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 2013-04-21
    相关资源
    最近更新 更多