对Java中不规则数组的理解:
Java实际上没有多维数组,只有一维数组,多维数组被解释为“数组的数组”。
这里是一个Java核心技术里的例子,结合例子记录我自己的理解:
package array;
public class Loottery {
public static void main(String[] args)
{
final int NMAX=10;//加final表示NMAX值不变
//allocate triangular array
int[] [] odds=new int[NMAX+1][];//二维数组有11行,列数不定
for (int n=0;n<=NMAX;n++)
odds[n]=new int[n+1];//第n行有n+1列
//fill triangular array
for (int n=0;n<odds.length;n++)//行
for(int k=0;k<odds[n].length;k++)//列
{
int lotteryOdds=1;
for (int i=1;i<=k;i++)
lotteryOdds=lotteryOdds*(n-i+1)/i;
odds[n][k]=lotteryOdds;//第n行,第k列的数值
}
for (int[] row :odds)
{
for(int odd:row)//嵌套输出数组中的每一个数值
System.out.printf("%4d",odd);//输出十进制数
System.out.println();
}
}
}