Java中的2D数组的实际大小(2D数组的填充区域)

时间:2012-05-25 00:50:26

标签: java multidimensional-array

我的家庭作业有问题,希望能找到一些帮助。

我必须将文本文件读入2D int数组。 2D阵列的宽度固定为5,永远不会改变。但是,数组的高度可能会根据文本文件的长度而改变。

我必须以40x5阵列开始;超过40行的任何文件都是不可接受的,但少于40行就可以了。所以,我可能只填充我的数组的X行(X <= 40)。

我必须计算每列的平均值,所以我需要列中有多少元素;有没有办法得到它? 或者,在知道X是什么之后,我可以将原始数组的大小(包含其中的所有数据)更改为Xx5吗?

示例输入文件:

034 080 055 078 045
060 100 056 078 078
070 010 066 078 056
034 009 077 078 020
045 040 088 078 055
输出应该是:

48.6 47.8 68.4 78.0 50.8

2 个答案:

答案 0 :(得分:0)

我不建议像这样动态扩展矩阵使用普通数组。我建议您阅读List & ArrayList文档以获得良好的实施。

来自Java doc: [ArrayList is a] resizable-array implementation of the List interface.

实际上,这是Java对C天不断定义的数组限制的解决方案。

答案 1 :(得分:0)

您需要做的是计算每个单独列的总和(简单;您不需要保持整个状态,只需保留每列的运行总计)加上行数的计数。鉴于此,计算每列的平均值应该很容易。你可以一次只读一行,一次完成所有这些,你的解决方案应该能够处理任何长度的文件。