在Java中有任何编写循环的方法,以便您可以在名为x{a_1[], a_2[], a_3[], ... , a_n[]}
的java中快速初始化数组数组。或者只需要输入它们就可以完成?
我写了一个新问题,可能会清除我想要实现的目标。 Java Poset simulation
答案 0 :(得分:1)
如果您已经拥有“行”阵列a_1
... a_n
,那么最简洁的方式就是
int[] a_1 = { 1, 2, 3 };
int[] a_2 = { 4, 5, 6 };
int[] a_3 = { 7, 8, 9 };
int[][] matrix = { a_1, a_2, a_3 };
即使您使用循环,您仍需要指定哪些数组a_1
,a_2
等,
你希望迭代(因此无法全部提及它们)。
您显然可以将a_1
替换为{ 1, 2, 3 }
,依此类推:
int[][] matrix = { { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
答案 1 :(得分:1)
aioobe是正确的,您也可以将其初始化为:
int[][] matrix = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
答案 2 :(得分:1)
你的问题根本不清楚,我会尝试给它一个答案。
在java中,2D数组被视为数组数组。如果要获取数组数组的引用,可以使用2D数组变量并将其每个元素用作数组。例如,您可以使用foreach循环遍历所有数组:
int[][] foo = new int[ 10 ][ 20 ];
for( int[] arrayInFoo : foo )
{
arrayInFoo[ 0 ] = ...;
arrayInFoo[ 1 ] = ...;
...
arrayInFoo[ 9 ] = ...;
}//for
此致 斯特凡
答案 3 :(得分:0)
二维数组是一个数组数组。
// 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];
答案 4 :(得分:0)
你对命名数组的意思是什么?
在你的情况下,a_1将是x [0]。
关闭你可以得到这个:
int a1[], a2[];
int aa[][] = { (a1 = new int[] { 1 }), a2 = new int[] { 2, 3 } };
但数组数组在这里几乎没有增加价值。 如果您只想初始化多维数组,请执行以下操作:
int ba[][] = { { 1 }, { 2, 3 }, { 2, 3, 4 }, { 2, 3, 4 } };
你也可以使用Arrays
用相同的值填充它,遗憾的是它只支持第一级。
int c1[] = new int[5];
Arrays.fill(c1, 5);
int ca[][] = { Arrays.copyOf(c1, 5),
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;
}
}