Java核心技术卷I基础知识3.10.7 不规则数组

3.10.7 不规则数组


到目前为止,读者所看到的数组与其他程序设计语言中提供的数组没有多大区别。但实际存在着一些细微的差异,而这正是Java的优势所在:Java实际上没有多维数组,只有一维数组。多维数组被解释为“数组的数组。”

例如,在前面的示例中,balances数组实际上是一个包含10个元素的数组,而每个元素又是一个由6个浮点数组成的数组(请参看图3-15)。

 

图3-15 一个二维数组

表达式balances[i]引用第i个子数组,也就是二维表的第i行。它本身也是一个数组,balances[i][j]引用这个数组的第j项。

由于可以单独地存取数组的某一行,所以可以让两行交换。

 

还可以方便地构造一个“不规则”数组,即数组的每一行有不同的长度。下面是一个典型的示例。在这个示例中,创建一个数组,第i行第j列将存放“从i个数值中抽取j个数值”产生的结果。

 

由于j不可能大于i,所以矩阵是三角形的。第i行有i + 1个元素(允许抽取0个元素,也是一种选择)。要想创建一个不规则的数组,首先需要分配一个具有所含行数的数组。

 

接下来,分配这些行。

 

在分配了数组之后,假定没有超出边界,就可以采用通常的方式访问其中的元素了。

 

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

      C++注释:在C++中,Java声明

 

不同于

 

也不同于

 

而是分配了一个包含10个指针的数组:

 

然后,指针数组的每一个元素被填充了一个包含6个数字的数组:

 

庆幸的是,当创建new double[10][6]时,这个循环将自动地执行。当需要不规则的数组时,只能单独地创建行数组。

程序清单3-9 LotteryArray/LotteryArray.java

 

 

 

现在,已经看到了Java语言的基本程序结构,下一章将介绍Java中的面向对象的程序设计。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值