1. 數(shù)組
數(shù)組是一個(gè)有序的元素序列,其內(nèi)部只能存放對(duì)象類型,對(duì)于基本數(shù)據(jù)類型需要用NSNumber包裝成對(duì)象后存放,對(duì)于C語言的Struct類型,需要用NSValue包裝對(duì)象后存放。
它的索引是從0開始,其索引大小大于數(shù)組長度時(shí),會(huì)拋出索引越界運(yùn)行時(shí)異常。
1.1 NSArray(固定數(shù)組)
NSArray具有常量性,其長度和元素均不能被更改。但元素對(duì)象指針指向的內(nèi)容可以修改。
遍歷方式:
// for in 方式,最快的迭代方法
for (MyPoint* p in arr) {
NSLog(@"%p",p);
}
// 迭代器方式
NSEnumerator* enumerator = [arr objectEnumerator];
MyPoint* p = nil;
while (p = [enumerator nextObject]) {
NSLog(@"%@",[p description]);
}
// for 循環(huán)
for (int i = 0; [arr count]; i++) {
id p = [arr objectAtIndex:i];
NSLog(@"%@",[p description]);
}
1.2 NSMutableArray (可變數(shù)組)
NSMutableArray 是 NSArray的子類,可更改自身的長度、及元素。與NSMutableString 一樣初始化指定一個(gè)capacity的值,為元素的數(shù)據(jù)。當(dāng)長度增長時(shí),會(huì)以capacity二倍的方式增長。
雖然它給我們提供了很多操作數(shù)組的方法,但是我們也應(yīng)該盡量去避免使用insertObject 和 removeObject等這種會(huì)改變數(shù)序列的操作,因?yàn)樯婕暗酱罅康膬?nèi)存拷貝操作。
2. Set 集合
分為NSSet,NSMutableSet,前者不可變,后者可變。
Set是一個(gè)無序、無重復(fù)元素的集合。引用類型!
遍歷的方式:Fash Enumeration和NS Enumerator。
3. Dictionary 字典
NSDictionary NSMutableDictinary(可變)
鍵 值對(duì)無序集合,key是唯一,value可重復(fù)
遍歷的方式:Fash Enumeration和NS Enumerator