我正在尝试理解数组和循环。所以我想将三个1D阵列合并为一个。你能给我这么建议怎么做吗?您是否知道有什么良好的培训可以很好地理解编程中的这个主题? 在这里我们得到了代码,这就是我现在想出的:
public class Company {
public static void main(String[] args) {
int[] arr1 = new int[]{1, 2, 3};
int[] arr2 = new int[]{4, 5, 6};
int[] arr3 = new int[]{7, 8, 9};
int[][] arrX = new int[3][3];
for(int i = 0; i<3; i++){
for (int j = 0; j < 3; j++){
arrX[i][j] = arr1[i] + arr2[j]; //Dont how to resolve this without using any "Java built-in methods"
}
}
for(int x = 0; x < arrX.length; x++){
for (int y = 0; y <arrX[x].length; y++){
System.out.print(arrX[x][y] + " ");
}
}
// System.out.println(Arrays.deepToString(tabx));
}
}
答案 0 :(得分:3)
您接近解决方案,但只需要一个循环(外部循环):
for (int i = 0; i<3; i++) {
arrX[1][i] = arr1[i];
arrX[2][i] = arr2[i];
arrX[3][i] = arr3[i];
}
迭代这三个数组只会在 之后才能在一个数据结构中将它们合并在一起。
当然更简单的方法是使用它:
arrX[1] = arr1;
arrX[2] = arr2;
arrX[3] = arr3;
或更短:
int[][] arrX = new int[][] {arr1, arr2, arr3};
或者在开头创建它:
int[][] arrX = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
请允许我提及,Arrays
是一种非常基本的数据类型 - 我认为应该避免。 Arrays
在极端情况下可能很有用(嵌入式编程,高性能任务等) - 但通常使用Collection
是可行的方法。
尝试使用List
s,Set
和Map
s - 或将结构化数据存储在您自己类的有意义字段中。
答案 1 :(得分:1)
如果要将所有三个数组添加到一个数据结构中,可以使用:
数组的ArrayList, 或者您可以创建一个像为arrx初始化的矩阵。
对于int []数组,不能在一个数组位置放置三个不同的整数。您可以将所有三个值相加并将它们存储在一个位置。
Matrix版本:在你的for循环中,你应该做
int row = 0;
for (int column = 0; column < 3; column++){
arrx[row][column] = arr1[column]; //Row zero stores arr1
arrx[row+1][column] = arr2[column]; //Row one stores arr2
arrx[row+2][column] = arr3[column]; //Row two stores arr3
}
我喜欢使用行和列的整数来更容易直观地看到。
这是行的基本硬编码方式。您可以尝试找出如何动态跟踪行。