OC中數(shù)組、字典和集合解析(二)

可變字典

//創(chuàng)建一個空的可變字典,預(yù)留兩個條目的空間

NSMutableDictionary *mInitDict = [[NSMutableDictionary alloc]initWithCapacity:2];

//創(chuàng)建一個空的可變字典

NSMutableDictionary *mInitDict1 =[[NSMutableDictionary alloc]init];

//字面量

NSMutableDictionary*mInitDict2=[@{@"name":@"sunwukong",@"age":@18,@"sex":@"F"}mutableCopy];

NSLog(@"mInitDict2 = %@",mInitDict2);

//功能方法

//添加條目

//前面是值(value),后面是鍵(key)

//注意:值和鍵不能為nil

[mInitDict2 setObject:@0.01 forKey:@"salary"];

NSLog(@"添加后: = %@",mInitDict2);

//修改方法

[mInitDict2 setObject:@0.1 forKey:@"salary"];

NSLog(@"修改后: =%@",mInitDict2);

//當(dāng)字典中。沒有對應(yīng)的key值時,將會添加相應(yīng)的鍵值對

//如果有對應(yīng)的key值,則對key對應(yīng)的value進(jìn)行修改

//字典中無法修改key值

//字面量的添加和修改

//當(dāng)key值存在,則修改

//當(dāng)key不存在,則添加

mInitDict2[@"height"] = @167;

NSLog(@"字面量添加后:%@",mInitDict2);

mInitDict2[@"height"]=@666;

NSLog(@"字面量修改后:%@",mInitDict2);

//不是字典類的方法,但是可以對字典操作

//和setObject:forKey的功能相似

//值可以為nil,刪除key值對應(yīng)的條目

[mInitDict2 setValue:@64 forKey:@"weight"];

NSLog(@"添加后:%@",mInitDict2);

[mInitDict2 setValue:nil forKey:@"weight"];

NSLog(@"設(shè)置nil:%@",mInitDict2);

//刪除

//刪除key值對應(yīng)的條目

[mInitDict2 removeObjectForKey:@"height"];

NSLog(@"刪除后 = %@",mInitDict2);

//刪除所有條目

[mInitDict2 removeAllObjects];

NSLog(@"刪除所有后:%@",mInitDict2);

#集合(集合也分為可變集合和不可變集合)

集合具有互斥性、無序性,集合中不可有相同的對象,對象之間沒有順序,可變集合和不可變集合里面是元素的可變與不可變

不可變集合

//創(chuàng)建對象//用多個對象來創(chuàng)建集合//注意:當(dāng)有多個相同對象時,只添加一個

NSSet *initSet =[[NSSet alloc]initWithObjects:@"teacher",@"student",@"worker", nil];

NSLog(@"initStr = %@",initSet);

NSSet *initStr1 = [NSSet setWithObjects:@"Teacher",@"Student",nil];

NSLog(@"initSet1 = %@",initStr1);

//獲取元素個數(shù)功能方法

NSInteger count = [initStr1 count];

NSLog(@"count = %ld",count);

//獲取任意元素

//沒有任何規(guī)律,不是隨機

NSString *str =[initStr1 anyObject];

NSLog(@"str = %@",str);

//是否包含

BOOL flag = [initStr1 containsObject:@"Person"];

NSLog(@"flag =%d",flag);

//獲取所有元素

NSArray *array = [initStr1 allObjects];

NSLog(@"array = %@",array);

可變集合

NSMutableSet *mInitSet = [[NSMutableSet alloc]initWithCapacity:2];

//添加 (再次添加后輸出時還是只有一個,但是不會報錯)

[mInitSet addObject:@"xiaohong"];

NSLog(@"mInitSet = %@",mInitSet);

//重復(fù)添加是無效的,但是不會報錯

[mInitSet addObject:@"xiaohuang"];

NSLog(@"mInitSet = %@",mInitSet);

//刪除

[mInitSet removeObject:@"xiaohong"];

NSLog(@"mInitSet = %@",mInitSet);

//刪除所有

[mInitSet removeAllObjects];

NSLog(@"mInitSet = %@",mInitSet);

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

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

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