【问题标题】:What is advantage of using arrayWithCapacity than using array?使用 arrayWithCapacity 比使用数组有什么优势?
【发布时间】:2011-08-21 21:05:25
【问题描述】:

创建数组的时候不需要指定数组大小吧? 那么,为什么需要 arrayWithCapacity 呢? 如果我将数组的大小设置为小于实际需要的大小,可以吗?

【问题讨论】:

    标签: iphone arrays nsmutablearray nsarray


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 2010-09-24
        • 2010-12-27
        • 2015-04-06
        相关资源
        最近更新 更多