我正在尝试将一个数组放入另一个数组中,以便可以输出数字:2、7、32、8、2。我必须以某种方式初始化这些值吗?有点困惑。我尝试了三四循环但结果不同。有一个有点类似的链接:Why is my simple Array only Printing Zeros in java? 我的代码如下。提前谢谢您。
public class test
{
public static void main(String[] args) {
int[] a = {2, 7, 32, 8, 2};
int[] b = new int[a.length];
int[] c = new int[b.length];
int[][] d = {b};
for(int z = 0; z < b.length; z++){
System.out.print(b[z] + " ");
}
System.out.println();
for(int y = 0; y < c.length; y++){
System.out.print(c.length + " ");
}
System.out.println();
for(int x = 0; x < d.length; x++){
System.out.print(d.length + " ");
}
}
}
------------------------
OUTPUT
0 0 0 0 0
5 5 5 5 5
1
Java 中有两种不同的数组操作:
int
,默认值为 0
,对于 Object
- null
)int[] arr = new int[5]; // i.e. arr = {0,0,0,0,0}
arr[0] = 2; arr[1] = 7; arr[2] = 32;
arr[3] = 8; arr[4] = 2;
此外,您可以同时进行这两项操作:
int[] arr = {2,7,32,8,2};
例如从你的片段:
int[] a = { 2, 7, 32, 8, 2 }; // create a new array with given values
int[] b = new int[a.length]; // create a new array with size 5 (a.length = 5) => b = {0,0,0,0,0};
int[] c = new int[b.length]; // create a new array with size 5 (b.length = 5) => c = {0,0,0,0,0};
很明显,这个片段将打印数组的内容
b
,即{0,0,0,0,0}
for (int id = 0; id < b.length; id++) {
System.out.print(b[id] + " ");
}
这个将打印数组
c
的内容,即 {0,0,0,0,0}
for (int y = 0; y < c.length; y++) {
System.out.print(c.length + " ");
}
关于二维数组。在 Java 中,这只不过是数组的数组。每行都是一个数组。
所以当你像这样初始化一个数组时:
int[][] d = { b };
这意味着,您定义了一个包含 1 行的 2D 数组,并且这 1 行包含数组
b
。顺便说一下,二维数组中的每一行可以有不同的长度。 IE。另一种方式:
int[][] d = new int[1][]; // first [] is amount of rows, second - columns
d[0] = b;
要打印二维数组,您必须遍历所有行(第一个循环),然后遍历所有列(第二个循环)。
for (int row = 0; row < d.length; row++) {
for (int col = 0; col < d[row].length; col++) {
System.out.print(d[row][col].length + " ");
}
}