gpt4 book ai didi

java - 二维数组串联

转载 作者:行者123 更新时间:2023-11-30 03:10:32 24 4
gpt4 key购买 nike

我需要一个给定输入二维数组 {{1,2},{3,4}} 和 (int)row=2 的方法; (int)column = 3,将生成一个串联的二维数组 {{1,2,1,2,1,2}{3,4,3,4,3,4}}。

我尝试使用嵌套的 for 循环来水平和垂直扩展它们,但没有成功。这是我到目前为止所拥有的:

    int row = 2;
int column = 5;
int count = 0;
int[][] list = {{12,3},{3,4}};

int [][] renewed = new int[row*list.length][column*list[0].length];

for (int l = 0; l<list.length; l++) {
for (int k = 0; k<renewed.length; k+= list.length) {
renewed[l+k] = list[l];
}
}

System.out.println(Arrays.deepToString(renewed));
}
}

^这会生成垂直扩展的列表[][],用于第一列

    int row = 2;
int column = 4;
int[][] list = {{12,3},{3,4}};

int [][] renewed = new int[row*list.length][column*list[0].length];
for (int i = 0; i<list[0].length; i++) {
for (int j = 0; j<renewed[0].length; j+=list[0].length) {
renewed[0][j+i] = list[0][i];
}
}

System.out.println(Arrays.toString(renewed[0]));
}

^这会生成水平扩展的列表[][],用于第一行;

那么我如何连接这两个方法来生成一个同时水平和垂直扩展的方法?

最佳答案

我认为最简单的方法是迭代新数组中的每个位置,并使用余数运算符 % 来获取原始数组的正确条目。

int[][] list = {{1,2},{3,4}};
int row = 2;
int column = 5;
int [][] renewed = new int[row*list.length][column*list[0].length];
for (int i = 0; i < renewed.length; i++) {
for (int j = 0; j < renewed[0].length; j++) {
renewed[i][j] = list[i % list.length][j % list[0].length];
}
}
System.out.println(Arrays.deepToString(renewed));

关于java - 二维数组串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com