Java 数组环绕

标签 java arrays word-wrap

嗨,我想知道如何包装数组

例如,采用下面的数组:

|00  01  02  03  04  05  06  07|

假设我想把一切都移到正确的位置,以达到这个目的:

|07  00  01  02  03  04  05  06|

如何在不丢失任何数据的情况下执行此操作?

为了将东西移到右侧,我目前正在使用以下代码:

public void transform(IFrame frame) {

    char tempImage;

    for (int i = 0; i < frame.getNumRows(); i++) {
        for (int j = 0; j < frame.getNumRows(); j++) {

            tempImage = frame.getChar(i,j);

            frame.setChar(i+1, j, tempImage);
}

基本上,我希望代码以非常基本的方式执行的操作是:

  • 遍历每一行/列(frame.getNumRows,因为框架是方形的,所以行/列是相同的

  • 从帧中获取i和j的char值

-对于该帧,将 i 和 j 的帧字符值设置为 i+1,同时保持 j 相同

-要设置的字符为临时图像

更新

我已经实现了这个方法,并对之前发布的方法进行了更改,下面是更新后的代码:

public void transform(IFrame frame) {

        char constantImage;

        for (int i = 0; i < frame.getNumRows(); i++) { //go through each row/column
            for (int j = 0; j < frame.getNumRows(); j++) {

                constantImage = frame.getChar(i, j);

                TransformFrames.add(constantImage);

                Collections.rotate(Arrays.asList(TransformFrames), 1);


                for (Character f : TransformFrames) {
                    frame.setChar(i, j, f);
                }
            }
        }
    } 

TransformFrames 是一个字符数组列表。

通过调试,我可以看到正确的数据被添加到数组列表中,我希望被移动,但是我无法看到这种情况发生,因为一旦调用此方法,GUI 就不会更新 - 任何建议为什么或怎么修??

谢谢

最佳答案

一个简单的方法是 Collections.rotate :

Collections.rotate(Arrays.asList(array), 1);

关于Java 数组环绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43620839/

相关文章:

Java dbUnit CRUD 测试错误

java - 在 Java 字符串中替换方法的更快替代方法?

c - C中数组转换的问题

PHP处理数据并创建数组

java - JTextArea 问题

python - ListCtrl(或 ObjectListView)中的自动换行

java - 多个应用程序之间共享事务

java - 匹配前面没有文字的电话号码

python - 替换数组中的负数,Python

html - 环绕文本将图像向上推