OC中的容器:數(shù)組,字典,集合 :容器中只能存儲對象,不能存儲基本和普通數(shù)據(jù)類型的數(shù)據(jù).
數(shù)組的元素不能改變
創(chuàng)建對象的方法:1.initWithObjects? (以空對象nil結(jié)束)??? 2.arrayWithObjects(構(gòu)造便利器,以nil結(jié)尾)? 3.initWithArray(相當(dāng)于復(fù)制)? 4.字面量(不需要nil結(jié)尾)
字面量方法的格式為? NSArray *a = @[@"a",@"b",@"c"]; (以字符串對象為例)
獲取元素個數(shù):count
獲取指定元素:objectAtIndex:n??? 也可是利用下標(biāo): nsArray[i]直接訪問
是否包含某個元素:containsObject:object
創(chuàng)建對象的方法:1.initWithCapacity:n? (預(yù)留n個元素的空間)
2.NSMutableArray *m = [@[ob1, ob2, ob3] mutableCopy];
功能方法:
1.增:? 1??? addObject:ob??? 2??? insertObject:ob atIndex:n
2.改:? 交換:exchangeObjectAtIndex:n withObjectAtIndex:m??? 替換:replaceObjectAtIndex:n withObject:ob
3.刪除: 刪除指定對象:removeObject:ob???? 刪除最后一個對象:? removeLastObject??? 刪除指定下標(biāo)處的對象: removeObjectAtIndex:n
刪除所有對象:removeAllObjects
4.分割字符串:對一個字符串進(jìn)行分割,然后賦給一個不可變數(shù)組:componentsSeparatedByString:string
5.拼接字符串:對一個數(shù)組中的各個字符串進(jìn)行拼接,然后賦給一個不可變的字符串對象
字典中存放的鍵值對叫做條目,所有的條目是無序的.字典中不能有相同的鍵(key),但可以有相同的值(value).字典中,只能通過鍵去獲得對應(yīng)的值.
以nil結(jié)束,每個條目值在前,鍵在后
創(chuàng)建對象的方法:1.initWithObjectAndKeys:ob1,key1,ob2,key2.....nil
2.字面量:鍵與值用":"隔開,鍵在前,值在后:? @{key1:ob1,key2,ob2...};
功能方法:
1.獲取條目個數(shù): count = [nsDict count];
2.獲取所有的鍵:array = [nsDict allKeys];
3.獲取所有的值:array = [nsDict allValues];
4.通過key獲取對應(yīng)的value:ob = [nsDict objectForKey:keyOb];
*遍歷一個字典中的條目方法:先用方法allKeys獲取字典中所有的鍵值存放到一個數(shù)組容器中,在通過這些有序的數(shù)組元素也就是所有的鍵,通過方? 法objectForKey遍歷字典的鍵值對
創(chuàng)建對象的方法:1.(預(yù)留兩個元素空間的可變字典)initWithCapacity:n? 2.(創(chuàng)建一個空字典)init
3.字面量:[@{key1:ob1,key2,ob2.....} mutableCopy];
1.添加(修改)條目:? 1?? setObject:ob forKey:key ? ?? 2??? 字面量:mDict[key]:ob; ? ? 3?? :[mDict setValue:ob forKey:key];
當(dāng)字典中,沒有對應(yīng)的key值時,將會添加相應(yīng)的鍵值對;如果有對應(yīng)的key值,則對key對應(yīng)的value進(jìn)行修改
2.刪除條目:? 1?? removeAllObjects (刪除所有條目)?? 2??? removeObjectForKey:key? (刪除指定條目)
集合:互異性:集合中不能有相同的對象; 無序性:對象之間沒有順序
創(chuàng)建對象的方法:1.NSSet *nSet = [[NSSet alloc] initWithObjects:ob1,ob2,ob3...,nil];? 以nil結(jié)束
2.NSSet *nSet = [NSSet setWithObjects:ob1,ob2,ob3...,nil];? 構(gòu)造便利器
功能方法:
1.獲取與元素個數(shù): [nSet count]
2.獲取任意一個元素:[nSet anyObject ]
3.是否包含:BOOL b = [nSet containsObject:ob]
4.獲取所有元素:array = [nSet allObjects]??? 要定義一個數(shù)組接受它
創(chuàng)建對象的方法: NSMutableSet *mset = [[NSMutableSet alloc] initWithCapacity:n];
功能方法:
1.添加元素: [mSet addObject:ob];?? 重復(fù)添加相同的元素是無效的,但不會報錯
2.刪除某個元素:[mSet removeObject:ob];
3.刪除所有元素:[mSet removeAllObjects];