views:

140

answers:

2

Just wondering if there is an equivalent to Java's ArrayList in Objective-C?

Or something that can be used to store objects/data that does not have a set size.

Thanks.

+9  A: 

NSMutableArray. You can add objects to it as needed.

mipadi
perfect thanks! thanks!
Uncle
+4  A: 

As others have pointed out, NSArray/NSMutableArray are what you're looking for.

Coming from the Java world, you may find that Cocoa's collection offerings feel quite paltry. In fact, the functionality is quite extensive. The NSArray, NSDictionary, and NSSet are, in fact, class clusters, meaning that the public API is an "abstract" class. When you initialize one of the collections, what you get back is, in fact, a concrete implementation tailored for the data you provide. These implementations can also change the concrete implementation at run time if the data changes (e.g. it grows in size). This is all possible due to Objective-C's much more dynamic run time than Java's static typing (and security) will allow. The class cluster strategy thus hides many of the implementations of, e.g. the java.util.List interface, behind a single API.

The Cocoa frameworks are somewhat limited in compound data structures (i.e. those built on top of "primitive" arrays, sets, and dictionaries). You may find that the excellent, open source CHDataStructures fills in many of the gaps.

Barry Wark