OC中的容器類及其功能方法:數(shù)組,字典,集合

OC中的容器:數(shù)組,字典,集合 :容器中只能存儲對象,不能存儲基本和普通數(shù)據(jù)類型的數(shù)據(jù).

# 數(shù)組

不可變數(shù)組: NSArray

數(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

可變數(shù)組? NSMutableArray

創(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)行拼接,然后賦給一個不可變的字符串對象

# 字典? NSDictionary

字典中存放的鍵值對叫做條目,所有的條目是無序的.字典中不能有相同的鍵(key),但可以有相同的值(value).字典中,只能通過鍵去獲得對應(yīng)的值.

不可變字典: NSDictionary

以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遍歷字典的鍵值對

可變字典: NSMutableDictionary

創(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? (刪除指定條目)

# 集合 NSSet

集合:互異性:集合中不能有相同的對象; 無序性:對象之間沒有順序

不可變集合:? NSSet

創(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ù)組接受它

可變集合:NSMutableSet

創(chuàng)建對象的方法: NSMutableSet *mset = [[NSMutableSet alloc] initWithCapacity:n];

功能方法:

1.添加元素: [mSet addObject:ob];?? 重復(fù)添加相同的元素是無效的,但不會報錯

2.刪除某個元素:[mSet removeObject:ob];

3.刪除所有元素:[mSet removeAllObjects];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容