一维数组:定义数组时不能指定数组长度,譬如int a[5]是不对的。初始化和定义可以一起,比如int a[]=new int[5],除了常规的赋值外,还可以即时赋值,有静态和动态初始化之分,静态int arrayName=new int[]{1,2,3,4};
动态,简化的静态初始化则为int arrayName[]={1,2,3,4,5};动态int a=new int[]{1,2,3},int a[]=new int[5];然后系统单个赋值。
二维数组:可以先定义(此时同样不能指定长度),然后初始化,也可以同时进行int b=new int[4][](最少指定左边维数的长度,也可以两者都指定),然后用b.length访问一级(我自己定义的名字)数组的长度,在这里结果是4,如果执行a[0]=new int[6],执行a[0].length才可以输出长度6,所以用for为二维数组的赋值容易得到。同样可以用静态初始化String [][]s=new String[][]{new String[3],newString[]{"hello"}};也可以String[][]s2={new String[3],newString[]{"hello"}}执行完代码后为
. .|口--->口口口(里面元素值为null)
s---->|口---->口元素值为hello
其实两者一样定义时不能声明长度,初始化时可以有长度。二维的话可以初始化的时候只声明左边的值,静态的话就是两边括号为空,右边花括号赋值就好,二维花括号里面还可以有花括号比如int a[][]={{1,2,3},{4,5,6}}则a[0][0]为1,a[1][1]为5.动态可以声明全部长度,然后一一赋值,二维还可以不指定两边值。
//定义二维数组写法1 class numthree { public static void main(String[] args) { float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3f; // 3行1列=1.3 numthree[3][0]=1.4f; // 4行1列=1.4 numthree[4][0]=1.5f; // 5行1列=1.5 } } //定义二维数组写法2 定义的同时分配空间大小 class numfour { public static void main(String[] args) { short[][] numfour=new short[5][8]; //定义一个short类型的数组同时为它分配5行8列的空间大小 numfour[0][7]=10; numfour[1][6]=20; numfour[2][5]=30; numfour[3][4]=40; numfour[4][3]=50; } } //定义二维数组写法3 不规则数组 class numfive { public static void main(String[] args) { long[][] numfive=new long[5][]; //定义一个long类型的不规则数组 numfive[0]=new long[5]; //为第1行分配5列 numfive[1]=new long[6]; //为第2行分配6列 numfive[2]=new long[7]; //为第3行分配7列 numfive[3]=new long[8]; //为第4行分配8列 numfive[4]=new long[9]; //为第5行分配9列 numfive[0][4]=10000000000L; //1行5列=10000000000 numfive[1][5]=20000000000L; //2行6列=20000000000 numfive[2][6]=30000000000L; //3行7列=30000000000 numfive[3][7]=40000000000L; //4行8列=40000000000 numfive[4][8]=50000000000L; //5行9列=50000000000 System.out.println(numfive[0][4]); //打印换行输出喽 System.out.println(numfive[1][5]); System.out.println(numfive[2][6]); System.out.println(numfive[3][7]); System.out.println(numfive[4][8]); System.out.println(numfive[4][7]); //打印输出一个没有定义数组元素的数组 java会自动将他初始化值为0 } } //定义2维数组写法4 定义的同时赋初始值 class numsix { public static void main(String[] args) { double[][] numsix={{1.111D,2.222D,3.333D},{4.444D,5.555D,6.666D}};//定义double型的数组分配2行3列的空间同时赋值 System.out.println(numsix[0][0]); //打印换行输出1行1列=1.111 System.out.println(numsix[1][1]); //打印换行输出2行2列=5.555 } } //定义2维数组写法5 定义不规则的2维数组同时赋初始值 class numseven { public static void main(String[] args) { int[][] numseven=new int[][]{{10,20,30},{40,50},{60}}; System.out.println(numseven[0][2]); System.out.println(numseven[1][1]); System.out.println(numseven[0][0]); } } //定义2维数组写法6 定义不规则的2维数组同时赋初始值; class numeight { public static void main(String[] args) { int[][] numeight={{100,200,300,400},{500,600,700,800},{900,1000,1100,1200,1300}}; System.out.println(numeight[0][2]); System.out.println(numeight[1][2]); System.out.println(numeight[2][1]); } } |
.