问题描述
|
在Java中,可以使用任何方式编写循环,以便您可以在Java中使用名称“ 0”快速初始化数组数组。还是仅需输入即可完成?
我写了一个新问题,可能会弄清楚我要达到的目标。 Java Poset模拟
解决方法
aioobe是正确的,您也可以将其初始化为:
int[][] matrix = {
{ 1,2,3 },{ 4,5,6 },{ 7,8,9 }
};
, 您的问题还不清楚,我将尽力回答。
在Java中,二维数组被视为数组的数组。如果要获取数组数组的引用,则可以使用2D数组变量,并将其每个元素用作数组。例如,您可以使用foreach循环遍历所有数组:
int[][] foo = new int[ 10 ][ 20 ];
for( int[] arrayInFoo : foo )
{
arrayInFoo[ 0 ] = ...;
arrayInFoo[ 1 ] = ...;
...
arrayInFoo[ 9 ] = ...;
}//for
问候,
斯特凡
, 如果您已经有\“ row \”数组,a_1
...a_n
,则最紧凑的方法是
int[] a_1 = { 1,3 };
int[] a_2 = { 4,6 };
int[] a_3 = { 7,9 };
int[][] matrix = { a_1,a_2,a_3 };
即使您使用循环,您仍然需要指定数组a_1
,a_2
,依此类推,
您希望进行迭代(因此无法一一提及所有内容)。
您显然可以用a_1
代替a_1
,依此类推:
int[][] matrix = { { 1,9 } };
, 二维数组是数组的数组。
// declare & allocate
int[][] x = new int[5][4];
// assign value in 3rd position of the 2nd array
x[1][2] = 5;
// create array containing 1 & 2 in the first \"row\" (or array)
// and 3 & 4 in the second one.
int[][] x = new int {{1,2},{3,4}};
// create an array of 2 arrays of different size:
int[][] x = new int[2][];
x[0] = new int[4];
x[1] = new int[2];
, 你说一个命名数组是什么意思?
您的情况下,a_1为x [0]。
关闭您可以得到的是这样的:
int a1[],a2[];
int aa[][] = { (a1 = new int[] { 1 }),a2 = new int[] { 2,3 } };
但是数组数组很难在这里增加价值。
如果您只想初始化多维数组,请按照以下步骤操作:
int ba[][] = { { 1 },{ 2,3,4 },4 } };
您也可以使用Arrays
用相同的值填充它,可惜它仅支持第一级。
int c1[] = new int[5];
Arrays.fill(c1,5);
int ca[][] = { Arrays.copyOf(c1,5),Arrays.copyOf(c1,5) };
要么:
int da[][] = new int[5][5];
for (int i = 0; i < da.length; i++) {
Arrays.fill(da[i],5);
}
或可能:
int ea[][] = new int[5][5];
for (int i = 0; i < ea.length; i++) {
for (int j = 0; j < ea[i].length; j++) {
ea[i][j] = 5;
}
}
与foreach:
int fa[][] = new int[5][5];
for (int[] is : fa) {
Arrays.fill(is,5);
}
和:
int ga[][] = new int[5][5];
for (int[] is : ga) {
for (int i : is) {
i = 5;
}
}