我可以大致了解移动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的功能是什么?
答案 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