【问题标题】:What is the LinkedList equivalent in iOS frameworks?iOS 框架中的 LinkedList 等价物是什么?
【发布时间】:2011-08-11 02:04:32
【问题描述】:

在java中,可以利用泛型LinkedList来提高经常将对象添加到列表前面的效率。它在 iOS 框架中的等价物是什么?

【问题讨论】:

    标签: java objective-c ios cocoa list


    【解决方案1】:

    您需要了解,在 NSArray 等 Foundation 课程中,并不是您在开始编程课程时所学的数组等。 特别是,它没有通常与数组相关联的性能特征。

    在这一点上,有很多不错的博客文章,例如一个是Ridiculous Fish,另一个是Cocoa with Love

    所以,正如其他人所说,只需使用NSMutableArray

    【讨论】:

    • 对于大型集合,数组的插入/删除性能很差
    • 是的,但NSMutableArray 不是数组。
    • 天啊!这就解释了。
    【解决方案2】:

    NSMutableArray 最接近这个。尽管有这个名字,但它更接近于列表而不是数组。但是,根据this“从任一端添加和删除元素需要恒定的时间”

    还有,这个呢,第三方实现:https://github.com/mschettler/NSLinkedList

    【讨论】:

    • +1 NSArray 在底层进行了 ton 的优化,使用内置解决方案始终是最佳选择。由于附加到任一端是一个恒定时间操作,因此不需要实际的链表,因为NSArray 已经具有所需的性能特征。
    • 你有这些附加和删除性能特征的来源吗? Ctrl+F 没有出现您在文档中引用的行。
    • 啊,对不起 - 它来自不同的页面 :)
    【解决方案3】:

    没有直接的等价物。自己写一个链表很容易,但我怀疑你会比NSMutableArray获得很多性能。

    在开源CHDataStructures 中有几个不同的链表实现。

    【讨论】:

      【解决方案4】:

      NSMutableArray 是向量或动态数组,但它不是链表。

      【讨论】:

      • 如果 NSMutableArray 是向量或动态数组。什么是和等价于objective-c中的链表?
      猜你喜欢
      • 2015-04-27
      • 2015-04-07
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 2023-01-17
      相关资源
      最近更新 更多