使用arrayWithCapacity比使用数组有什么好处?

时间:2011-08-21 21:05:25

标签: iphone arrays nsmutablearray nsarray

创建数组时没有必要指定数组大小,对吗? 那么,为什么arrayWithCapacity必要? 如果我将数组的大小设置为比实际需要的小,那可以吗?

2 个答案:

答案 0 :(得分:6)

arrayWithCapacity是一种优化 - 没有必要。如果您提前知道元素的数量,系统可以在一个系统调用和一个内存块中分配存储。否则,系统必须在稍后添加更多元素时调整阵列大小,并且往往速度很慢,需要额外的分配,并可能将数据从旧缓冲区复制到新缓冲区。

答案 1 :(得分:1)

array创建一个空数组(并在添加对象时分配内存),而arrayWithCapacity创建一个数组,其中分配了足够的内存来保存这些对象,但您可以在需要时随时展开它。 / p>