Objective-C中Java的List的等价物是什么?

Jam*_*sev 10 list objective-c

我想知道Objective-C是否支持Lists?或者..是NSMutableArray一种方法,而不是?

Reg*_*ent 23

NSMutableArray(Mac,iOS)在大多数情况下将是列表的适当类(与NSArray不可变对应).

与Java的集合类相反,Objective-C(或更确切地说是Foundation)的数组是完全隐藏其实现的不透明类集群.

编辑: 剪断 (见注释orange80)

虽然Java有很多集合类,例如:

  • HashSet
  • TreeSet
  • LinkedHashSet
  • ArrayList
  • LinkedList
  • PriorityQueue
  • HashMap
  • TreeMap
  • LinkedHashMap
  • WeakHashMap
  • IdentityHashMap
  • CopyOnWriteArrayList
  • CopyOnWriteArraySet
  • EnumSet
  • EnumMap
  • ConcurrentLinkedQueue
  • LinkedBlockingQueue
  • ArrayBlockingQueue
  • PriorityBlockingQueue
  • DelayQueue
  • SynchronousQueue
  • ConcurrentHashMap

然而,Objective-C(再次,实际上是Foundation SDK)仅提供非常有限数量的集合类:

  • CFMutableDictionary
  • CFMutableBag
  • CFMutableBitVector
  • CFMutableSet
  • CFMutableArray
  • CFBinaryHeap
  • CFMutableTree

或者最好是它们的NS等价物:

  • NSMutableDictionary
  • NSDictionary
  • NSMutableSet
  • NSSet
  • NSCountedSet
  • NSMutableArray
  • NSArray

为了全面了解此事,我建议阅读:http: //ridiculousfish.com/blog/posts/array.html(作者是Apple基金会团队的成员)