【发布时间】:2011-08-11 02:04:32
【问题描述】:
在java中,可以利用泛型LinkedList来提高经常将对象添加到列表前面的效率。它在 iOS 框架中的等价物是什么?
【问题讨论】:
标签: java objective-c ios cocoa list
在java中,可以利用泛型LinkedList来提高经常将对象添加到列表前面的效率。它在 iOS 框架中的等价物是什么?
【问题讨论】:
标签: java objective-c ios cocoa list
您需要了解,在 NSArray 等 Foundation 课程中,并不是您在开始编程课程时所学的数组等。 特别是,它没有通常与数组相关联的性能特征。
在这一点上,有很多不错的博客文章,例如一个是Ridiculous Fish,另一个是Cocoa with Love
所以,正如其他人所说,只需使用NSMutableArray。
【讨论】:
NSMutableArray 不是数组。
NSMutableArray 最接近这个。尽管有这个名字,但它更接近于列表而不是数组。但是,根据this,“从任一端添加和删除元素需要恒定的时间”。
还有,这个呢,第三方实现:https://github.com/mschettler/NSLinkedList
【讨论】:
NSArray 在底层进行了 ton 的优化,使用内置解决方案始终是最佳选择。由于附加到任一端是一个恒定时间操作,因此不需要实际的链表,因为NSArray 已经具有所需的性能特征。
没有直接的等价物。自己写一个链表很容易,但我怀疑你会比NSMutableArray获得很多性能。
在开源CHDataStructures 中有几个不同的链表实现。
【讨论】:
NSMutableArray 是向量或动态数组,但它不是链表。
【讨论】: