Java核心技术卷I基础知识(原书第9版)
上QQ阅读APP看书,第一时间看更新

3.10.6 多维数组

多维数组将使用多个下标访问数组元素,它适用于表示表格或更加复杂的排列形式。这一节的内容可以先跳过,等到需要使用这种存储机制时再返回来学习。

假设需要建立一个数值表,用来显示在不同利率下投资$10,000会增长多少,利息每年兑现,而且又被用于投资(见表3-8)。

表3-8 不同利率下的投资增长情况

可以使用一个二维数组(也称为矩阵)存储这些信息。这个数组被命名为balance。

在Java中,声明一个二维数组相当简单。例如:

与一维数组一样,在调用new对多维数组进行初始化之前不能使用它。在这里可以这样初始化:


balances=new double[NYEARS][NRATES];

另外,如果知道数组元素,就可以不调用new,而直接使用简化的书写形式对多维数组进行初始化。例如:

一旦数组被初始化,就可以利用两个方括号访问每个元素,例如,balances[i][j]。

在示例程序中用到了一个存储利率的一维数组interest与一个存储余额的二维数组balances。一维用于表示年,另一维用于表示利率,最初使用初始余额来初始化这个数组的第一行:

然后,按照下列方式计算其他行:

程序清单3-8给出了完整的程序。

注释:for each循环语句不能自动处理二维数组的每一个元素。它是按照行,也就是一维数组处理的。要想访问二维数组a的所有元素,需要使用两个嵌套的循环,如下所示:

提示:要想快速地打印一个二维数组的数据元素列表,可以调用:

输出格式为:

程序清单3-8 CompoundInterest/CompoundInterest.java