gpt4 book ai didi

java - NSArray 大小和可变性

转载 作者:行者123 更新时间:2023-11-29 09:50:04 25 4
gpt4 key购买 nike

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

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

最佳答案

你的假设是错误的,NSMutableArray 不会比普通的 NSArray 慢。

NSMutableArray 不会使用链表,它会使用 dynamic array .除了需要调整大小的插入之外,它与普通数组一样快。但是由于它们之间的距离呈指数级增长,因此如果您不调整大小,它会摊销到几乎相同且相同。

与Java的ArrayList基本相同。

关于java - NSArray 大小和可变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8252417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com