【问题标题】:Objective C equivalent to Java's ArrayListObjective C 等价于 Java 的 ArrayList
【发布时间】:2010-07-28 14:56:19
【问题描述】:

只是想知道在 Objective-C 中是否有与 Java 的 ArrayList 等效的东西?

或者可以用来存储没有固定大小的对象/数据的东西。

谢谢。

【问题讨论】:

    标签: java objective-c arraylist equivalent


    【解决方案1】:

    正如其他人所指出的,NSArray/NSMutableArray 是您要找的。

    来自 Java 世界,您可能会发现 Cocoa 的集合产品感觉非常微不足道。事实上,功能是相当广泛的。 NSArrayNSDictionaryNSSet 实际上是 class clusters,这意味着公共 API 是一个“抽象”类。当您初始化其中一个集合时,您得到的实际上是为您提供的数据量身定制的具体实现。如果数据发生变化(例如,它的大小增加),这些实现还可以在运行时更改具体实现。这一切都是可能的,因为 Objective-C 的动态运行时间比 Java 的静态类型(和安全性)所允许的要多得多。因此,类集群策略隐藏了许多实现,例如java.util.List 接口,位于单个 API 后面。

    Cocoa 框架在复合数据结构(即那些建立在“原始”数组、集合和字典之上的数据结构)方面有些局限。您可能会发现优秀的开源CHDataStructures 填补了许多空白。

    【讨论】:

    • 我正在寻找与 Julio 相同的东西,并看到很多答案说“只需闭上眼睛并使用 NS*Array...”。但通常您确实确实想明确使用链表,例如用于恒定时间插入/删除任何项目(NS*Array 不保证这一点)。根据已知的访问模式选择正确的数据结构是性能的基础。作为 iOS 开发的新手,我不明白为什么 Cocoa 似乎会从程序员手中夺走这个决定?
    【解决方案2】:

    NSMutableArray。您可以根据需要向其中添加对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多