用Java编写不规则数组

来源:互联网 发布:自动化交易编程设计 编辑:程序博客网 时间:2024/05/24 00:48

对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();
  }
 }
}