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

use*_*200 5 arrays iphone nsmutablearray nsarray

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

Eri*_*icS 6

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