嗨,我想知道如何包装数组
例如,采用下面的数组:
|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/