创建动态增长阵列所需的工作单元

时间:2013-10-03 20:20:02

标签: java

我正在处理的项目要求我创建一个数组,当添加数据时不会增加(不要担心现在正在缩小),在数据加上数据时,通过向数组长度添加50来增加数据。

它的容量为100.因此,例如,在第101次添加时,它会扩展到150的容量。

在开始之前,我需要考虑使阵列增长需要多少工作单元,比如1000项,假设需要一个工作单元将项目写入阵列位置,以及一个工作单元分配一个新数组。

我的思维过程是:它需要: Arr长度工作单位 100 1 + 100 + 50 150 1 + 200 ...

认为1用于分配,50用于填充数组,而中间用于复制数据。因此1000需要10367。

这听起来不错吗?

1 个答案:

答案 0 :(得分:2)

如果创建一个新数组需要1个工作单元,并且每个项目写入1个单元,那么它将需要

(1 + 100) // initial create and fill
+ (1 + 150)
...
+ (1 + 1000)

这是10469