使用arrayWithCapacity相比使用array有什么优势?

5
创建数组时不必指定数组大小,对吗?那么为什么需要使用arrayWithCapacity呢?如果我将数组大小设置得比实际需要的小,会有问题吗?
2个回答

6

arrayWithCapacity是一种优化方式,不是必需的。如果您提前知道元素数量,系统就可以在一个系统调用和一个内存块中分配存储空间。否则,系统需要在添加更多元素时重新调整数组大小,这往往很慢,需要额外的分配,并可能复制数据从旧缓冲区到新缓冲区。


1

array 创建一个空数组(当您添加对象时分配内存),而 arrayWithCapacity 则创建一个具有足够内存以容纳这些对象的数组,但您始终可以在需要时扩展它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接