移动2D阵列中的某个列

时间:2016-03-15 04:56:38

标签: java arrays

我可以大致了解移动2D阵列的特定列吗?我通过双循环填充数组但是我仍然坚持如何处理它。我不一定需要代码。我只需要一种思考方式即可。

我还有另一个问题。 array.length打印出数组的长度,但我在互联网上看到,人们使用:

for (int i=0; i<array.length; i++)
{
   for (int j=0; j<array[i].length; j++)
   array[i][j] =(int)(Math.random()*((9)+1));
}

array [i] .length的功能是什么?

1 个答案:

答案 0 :(得分:2)

具体到你的问题,array [i] .length是&#34; dimension 2&#34;的长度。为&#34;尺寸1&#34;。具体来说,二维数组不是&#34;网格&#34;,它是一种实际的排序表。如果你考虑一个数据表,每一行都是一个&#34;条目&#34; (通常是元组或有序集合),如果你放入第一个维度,你得到整行,然后第二个维度改进你的选择。这可以垂直完成,但数据通常从左向右读取,因此您引用一行。

外部循环是尺寸i,然后对于给定尺寸i,您将其作为尺寸j进行处理。

基本上,int x [i] [j]是一个包含i个包含j个整数的数组的数组。

    1    2    3   ...    i
1
2
3
...
j

这里的安排纯粹基于您选择使用它,因为您可以在图中交换i和j并且不做任何改变,您只需要一致地处理它(行必须始终是行等)。

根据您在逻辑上排列数据的方式,您的问题有两个答案之一。如果列是你的dim1,那么你只需将它相同地换成一维数组。这是因为每个数组本身都是一个容器,所以你可以移动整个容器。

    1      >>      2    3   ...    i
1          shift
2          shift
3          shift
...        ....
j          shift

如果您尝试在第二维度上执行此操作...您应该能够通过迭代每个&#34;秒来做到这一点。一个并在内部将每个数组移动一个。

    1    2    3   ...    i
1
VV  sh  sh   sh          sh
2
3
...
j