当我使用NSMutableArray
orNSMutableDictionary
时,如果我知道要放入的元素数或最大元素数,我通常使用arrayWithCapacity
or创建它们dictionaryWithCapacity
,但我想知道为数组/字典指定(初始)容量是否真的有帮助?
我不知道它是如何在内部实现的,但我相信当集合中的元素数量达到容量甚至接近容量时,集合可能会扩展其容量,所以如果我创建了一个可变数组容量32,只要我把第32个物体放进去,它就会自己膨胀到另一个容量?或者即使我把第30个物体放进去,它的容量也会扩大,因为它认为会有更多的物体?
因此,如果这些方法真的有帮助,我应该使用类似的方法:
*withCapacity:maxNumberOfElements * 1.5
代替
*withCapacity:maxNumberOfElements
所以它对我的对象有足够的容量并且当我放入所有对象时不会扩展?