在 Java 中初始化二维数组?
Initialization of 2D Array in Java?
当我们在 java 中声明和初始化二维数组时,我有点困惑,如下所示
int arr[][]={{1,2,3,4},{4,3,2,1}};
这项工作是正确的,但是什么时候做下面给出的上述操作
int arr[2][4]={{1,2,3,4},{4,3,2,1}};
那为什么会报错呢?为什么我们不能固定行和列的大小,然后在同一条语句中赋值?我知道我们可以单独使用循环来做到这一点,比如 arr[0][0]=345;
等等,但为什么我们不能这样做呢?
int arr[4][2]={{1,2,3,4},{4,3,2,1}};
那是因为Java不是C语言
当你写int arr[][] = {{1, 2, 3, 4}, {4, 3, 2, 1}};
的时候,你声明并初始化了一个2乘4的多维数组,相当于你提出的C语言初始化(int arr[2][4] = {{1, 2, 3, 4}, {4, 3, 2, 1}};
)
在Java中,我们最好以Java风格的方式声明数组:
int[][] arr = {{1, 2, 3, 4}, {4, 3, 2, 1}};
其中 int[][]
只是一个类型标识符,我们不能指定大小。
而且,在Java中,我们可以初始化一个非矩形的二维数组:
int[][] arr = {{1, 2, 3, 4}, {4, 3}};
如果你想声明一个特定大小的数组,但不想一次指定它的所有值,唯一的解决方案是使用 new
:
int[][] arr = new int[2][4];
arr[0][0] = 1;
当我们在 java 中声明和初始化二维数组时,我有点困惑,如下所示
int arr[][]={{1,2,3,4},{4,3,2,1}};
这项工作是正确的,但是什么时候做下面给出的上述操作
int arr[2][4]={{1,2,3,4},{4,3,2,1}};
那为什么会报错呢?为什么我们不能固定行和列的大小,然后在同一条语句中赋值?我知道我们可以单独使用循环来做到这一点,比如 arr[0][0]=345;
等等,但为什么我们不能这样做呢?
int arr[4][2]={{1,2,3,4},{4,3,2,1}};
那是因为Java不是C语言
当你写int arr[][] = {{1, 2, 3, 4}, {4, 3, 2, 1}};
的时候,你声明并初始化了一个2乘4的多维数组,相当于你提出的C语言初始化(int arr[2][4] = {{1, 2, 3, 4}, {4, 3, 2, 1}};
)
在Java中,我们最好以Java风格的方式声明数组:
int[][] arr = {{1, 2, 3, 4}, {4, 3, 2, 1}};
其中 int[][]
只是一个类型标识符,我们不能指定大小。
而且,在Java中,我们可以初始化一个非矩形的二维数组:
int[][] arr = {{1, 2, 3, 4}, {4, 3}};
如果你想声明一个特定大小的数组,但不想一次指定它的所有值,唯一的解决方案是使用 new
:
int[][] arr = new int[2][4];
arr[0][0] = 1;