Java里采用“数组的数组”定义一个多维数组,一个二维数组由多个一维数组构成,例如:

 

//1.1
int
[][] a = new int [3][4];

实验结果:

数组未初始化,元素值默认为0

 

代码1.1中a数组就是一个由3个长度为4的一维数组构成。

但这个数组的每个一维数组长度都固定下来了,有可能会造成资源空间浪费,所以我们可以采用如下方法定义一个二维数组:

//1.2
//int
[][] a = new int [m][n]; //m的值必须指定,n的值可以忽略
int[][] a = new int [3][]; //先创建3个一维数组,但还没有指定它们的长度,也没有为它们分配内存空间

a[0]=new int [6]; //长度为6的一维数组并分配内存空间
a[1]=new int [12]; //长度为12的一维数组
并分配内存空间
a[2]=new int [8]; //长度为8的一维数组并分配内存空间

实验结果:

代码1.2中m的值,是指在创建二维数组时,自己需要多少个一维数组,即数组的行数。

代码1.2中n的值,是指在创建二维数组时,如果需要创建固定长度的一维数组,就需要指定n的值,如果需要创建不同长度的一维数组,就可忽略n的值。

//1.3
int
a[][]= {{1}, {1,1}, {1,2,1}, {1,3,3,1}, {1,4,6,4,1}, };

也可以用代码1.3的方法,由若干个长度不同的一维数组创建并初始化一个二维数组。

 

 //实例1 输出杨辉三角形的前5行
1
public class Example { 2 3 public static void main(String[] args) { 4 int a[][]= {{1}, 5 {1,1}, 6 {1,2,1}, 7 {1,3,3,1}, 8 {1,4,6,4,1}, 9 }; 10 for(int i=0; i<5; i++) { 11 for(int j=0; j<a[i].length; j++) { 12 System.out.printf("%4d", a[i][j]); 13 } 14 System.out.printf("%n"); 15 } 16 } 17 18 }

实验结果:

 

版权声明:本文为smallxz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/smallxz/p/14014826.html