NSArray大小和可变性

ben*_*ndu 1 java arrays objective-c nsmutablearray nsarray

在Java中,我通常初始化特定大小的数组,然后在我的代码继续时添加和替换对象.在Objective C中,我不能用NSArray做到这一点.我从Java移植的代码通常必须使用NSMutableArray,我认为它的执行效率低于NSArray.(我最好猜测NSMutableArray如何存储它的成员是使用链表,但我可能是错的)

Objective C中是否有任何类型的数组具有固定的大小并允许在数组中进行更改?为什么不能用NSArray替换某个对象的对象?我可以用C数组做到这一点,为什么不用Objective C?

Kev*_*vin 6

你的假设是错误的,NSMutableArray不会比平原慢NSArray.

NSMutableArray不会使用链表,它将使用动态数组.除了需要调整大小的插入外,它与普通数组一样快.但是,由于它们会以指数方式进一步分开,所以它会分摊到几乎相同,如果你没有达到调整大小,则相同.

它与Java基本相同ArrayList.