java - 如何将二维数组拆分为左右数组?

标签 java split multidimensional-array arrays

<分区>

Possible Duplicate:
java: How to split a 2d array into two 2d arrays

需要的是拆分这个数组:

int[][] bitblock = {
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0},
    {1,0,1,0,1,0,1,0}};

这是一个8*8的数组,我想把它拆分成左右数组存在这里:

int[][] leftblock = new int [bitblock.length][bitblock[0].length/2];
int[][] rightblock = new int [bitblock.length][bitblock[0].length/2];

我使用了 Syste.arraycopy 方法,我能够将位 block 拆分为上下数组,我有点难以左右拆分它:

System.arraycopy(bitblock, 0, leftblock, 0, leftblock.length);
System.arraycopy(bitblock, rightblock.length, rightblock, 0, rightblock.length)

有人可以帮忙吗?谢谢

最佳答案

这应该可以很好地解决问题:

int[][] 位 block = {{1, 0, 1, 0, 1, 0, 1, 0}, {1, 0, 1, 0, 1, 0, 1, 0}, {1, 0, 1 , 0, 1, 0, 1, 0}, {1, 0, 1, 0, 1, 0, 1, 0}, {1, 0, 1, 0, 1, 0, 1, 0}, {1, 0, 1, 0, 1, 0, 1, 0}, {1, 0, 1, 0, 1, 0, 1 , 0}, {1, 0, 1, 0, 1, 0, 1, 0}};

 int[][] leftblock = new int[bitblock.length][bitblock[0].length/2];
    int[][] rightblock = new int[bitblock.length][bitblock[0].length/2];

    对于 (int i = 0; i < bitblock.length; i++) {
        对于 (int j = 0; j < bitblock[0].length/2; j++) {
            leftblock[i][j] = bitblock[i][j];
        }

        对于 (int j = bitblock[0].length/2; j < bitblock[0].length; j++) {
            rightblock[i][j - bitblock[0].length/2] = bitblock[i][j];
        }
    }

您也可以使用 System.arraycopy,因为它使代码更清晰,便于将来检查。 至于性能,我认为只要您的数组那么小就无关紧要。

关于java - 如何将二维数组拆分为左右数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440932/

相关文章:

Java:递增/递减运算符的前缀/后缀?

java - Android 将已解析的 JSON 数据中的按钮 ID 提供给 ListView

python - 如何在设置参数时使用 .split() 以跳过特定标记

java - 已初始化的未初始化变量

java - 通过 Selenium Chromedriver 自动授予对 Chrome 48 中视频和音频的访问权限

java分割引号内的字符串

string - Bash:完全像 Readline 一样拆分字符串

python - 搜索多维数组

C多维字符数组初始化

javascript - 我正在尝试在 javascript 中为多维数组创建一个搜索函数