然后你可以定义三个内部的一维数组比如:
a[0]=new int[]{0,1,2,5,6,7,8}
a[1]=new int[]{4,5,2,3,1}
a[2]=new int[]{9,1,7}
但是不能有3索引了,为什么?
因为长度已经被限制了只能是3个,内嵌的数组长度可以随意的!
回头看你说的这个:
int[][] a=new int[3][2]
也就是说,你这个3代表二位数组的长度,已经被限制了
但是后面这个2代表内置的数组元素个数,这个是可以变换的
a[0]=new int[]{0,1,2,3}所以这个是合法的!
//总结了一下你看看:
import java.util.Arrays
public class TwoArr {
public static void main(String[] args) {
//1
int[][] arr1={}
sop(arr1,1)
//2
int[][] arr2 = new int[][]{{1,2}, {2, 3}, {4, 5}}
sop(arr2,2)
//3
int[][] arr3 = {{1,2},{2, 3},{4, 5}}
sop(arr3,3)
//4
int[][] arr4=new int[3][2]
sop(arr4,4)
arr4[0]=new int[]{1,2,3,4}
sop(arr4,4)
//5
int[][] arr5= {{0,0},{0,0},{0,0}}
sop(arr5,5)
arr5[1]=new int[]{8,9,7,10}
sop(arr5,5)
//6
int[][] arr6= new int[][]{{0,0},{0,0},{0,0}}
sop(arr6,6)
arr6[0]=new int[] {8,7,9,5}
arr6[1]=new int[] {8,7,9,5}
arr6[2]=new int[] {8,7,9,5}
sop(arr6,6)
//7
int[][] arr7 =new int[3][]
arr7[0]=new int[]{1,2}
arr7[1]=new int[]{3,4}
arr7[2]=new int[]{5,6}
sop(arr7,7)
}
private static void sop(int[][] arr,int count) {
System.out.print("arr"+count+":[")
for(int[] a:arr) {
System.out.print(Arrays.toString(a))
}
System.out.println("]")
System.out.println()
}
}
//2,3,4,5,6完全一个意思,区别就只是书写上,下面看看测试的效果!
int a[][] = new int[3][2]表示定义一个三行二列的二维数组,但是a[0] = {1,6}是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。
该代码的正确方法应该是:
int a[][] = new int[3][2]
a[0][0]=1
a[0][1]=6
扩展资料
java定义二维数组的方法:
1、动态初始化
数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]
举例:int [ ][ ] arr=new int [5][3] 也可以理解为“5行3例”
2、 静态初始化
数据类型 [ ][ ] 数组名 = {{元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....}
举例:int [ ][ ] arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}
参考资料来源:百度百科——二维数组
可以。数组是一个容器,用来存储数据的。现在数组中存储的不再是int,double..的类型了,而是存储的数组。数组中的元素还是数组,我们把它称之为数组中的数组,也就做二维数组。维度增加了一层。简单的来说二维数组就是元素为一维数组的数组。