根据这些说明,我试图将数组从4x2转换为2x4"
"给定一个二维数组arr1的int,返回一个二维数组arr2,即arr1的转置。 转置就是将数组的行放入列中。也就是说,arr1 [n] [m] = ARR2 [M] [N]&#34。
我提出的解决方案如下:
public int[][] transpose(int[][] arr1){
int[][] arr2;
arr2 = new int [arr1[0].length][arr1.length];
for(int i = 0; i<arr1.length; i++){
for(int j = 0; j < arr1[0].length; j++){
arr2[j][i] = arr1[i][j];
}
}
}
我不确定我是否完全理解数组表示法,当代码引用arr1[0]
和arr1
来访问行与列时。 arr1[0].length
访问第一列的长度,其中arr1.length
访问第一行的长度吗?
答案 0 :(得分:1)
说你有(4x2二维阵列)
int[][] arr1 = {{1,2},
{3,4},
{5,6},
{7,8}
};
然后每个的值是:
arr1[0].length // 2
arr1.length // 4
答案 1 :(得分:0)
arr1 [0] .length是否访问第一列的长度,其中arr1.length访问第一行的长度?
这完全取决于你如何根据&#34;行&#34;来查看数组。和&#34;列&#34;。
int[][]
类型是一个数组数组。该数组的每个元素都是int[]
,它可以与其他所有元素的大小不同。所以arr1.Length
是&#34;嵌套&#34;的数量。数组,arr1[0].Length
是第一个嵌套数组的长度。如果您将每个嵌套数组视为一行,则arr1.Length
是行数,arr1[0].Length
是第一行中的列数 - 您基本上是假设arr1
的每个元素具有相同的长度。
答案 2 :(得分:0)
相对
arr1[0]
代表第一行。这样它就会给出第一行的长度,即列数。