1. 不规则二维数组
Java中创建高维数组时,分配内存空间有以下几种方法(此处以二维数组为例):
(1)直接为每一维分配空间
int a[][] = new int [2][3]
或
a = new int [2][3]
(2)从最高维开始,分别为每一维分配空间
int a[][] = new int [2][]; //指定第一维维数
a[0] = new int [3];
a[1] = new int [3];
这一点与C/C++不同,C/C++中必须一次指明每一维的长度,但是Java中可以分开指明每一维的维数。
(3)多次分配空间的方法,可以创建不规则的多维数组
int a[][] = new int [4][]; //指定第一维维数
a[0] = new int [1];
a[1] = new int [2];
a[2] = new int [3];
a[3] = new int [4];
上述代码创建的二维数组为不规则维数数组,可以形象的表示为(每个表格代表一个元素):
2.利用不规则二维数组输出杨辉三角形
(1)杨辉三角形介绍
参考资料(百度百科):http://www.baike.com/wiki/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92%E5%BD%A2
(2)JAVA代码实现:
package TEST;
public class TEST
{
public static void main(String args[])
{
//输出杨辉三角形 10行
final int MAX=10; //最大10行
int array[][] = new int [MAX][]; //指定一维个数 使用不规则数组
int i,j,k;
for(i=0;i<MAX;i++)
{
array[i] = new int[1+i]; //指定第二维个数
array[i][0]=1; //每行首元素=0
array[i][i]=1; //每行尾元素=0
}
//填充其他元素
for(i=2;i<MAX;i++) //从第2行开始
{
for(j=1;j<(i+1-1);j++) //从每列第2个元素开始,到每列倒数第2个元素停止
{
array[i][j] = array[i-1][j-1] +array[i-1][j];
}
}
//输出数组元素 按照格式输出
for(i=0;i<MAX;i++)
{
//输出空格
for(k=(MAX-1-i);k>0;k--)
{
System.out.print(" ");
}
//输出元素
for(j=0;j<(i+1);j++)
{
System.out.print(array[i][j]+" ");
}
System.out.print('\n'); //换行
}
}
}