arrays - NSOrderedSet 比 NSSet 快吗?

标签 arrays swift

NSOrderedSet 比 NSSet 更快吗?有没有人做过任何测试,其中一个比另一个更好?如果不是,为什么首先要引入 NSOrderedSet?

最佳答案

NSOrderedSet

使用有序集的要点在于,它可以按照添加项目的原始顺序进行遍历,并且查询是否包含对象比无序数组更快。然而,“包含”操作(以及基于它的集合操作)比该操作的无序集合可能的 O(1) 慢。

无序集合

集合的要点是它允许最好的情况 O(1)“包含”查询时间。当您需要尽可能快的“包含”时间并且不需要以任何指定的排序顺序检索结构中的项目时,您应该使用这两种数据结构。

它在内部可能实现为 hash map ,尽管基金会文档中没有指出。

我建议阅读this great blog post关于不同基金会数据结构的不同用途。

关于arrays - NSOrderedSet 比 NSSet 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971254/

相关文章:

java - 如何使用 Java ByteBuffer 处理负 int

Ruby:遍历对象数组,忽略具有重复属性的项目

ios - Swift:除了使用 button.tag 之外,是否有更简洁的方法来传递额外的 UIBarButtonItem 操作:选择器参数?

ios - 无法使用来自源 URL-swift 的 alamofire 上传多个文件

swift - 在 UIImage 中打一个清晰的洞

swift - 带有原生 Swift 应用程序的 Apple Watch 和 Fitbit watch

ios - swift 错误 : '&' used with non-inout argument of type 'UnsafeMutablePointer'

php - 如何在单个数组中获取两个数组而不丢失 mysql 和 php 中的值?

javascript - 循环卡在第一个区间

arrays - scala 中令人难以置信的隐式数组转换