NSDictionary && NSMutableDictionary && NSSet

 字典存在的意義:1.大容器,用來存儲多個數據
 2.用來存儲的數據具有一一對應的關係.(使用key 來標示value)
 3.對於字典中的一對鍵值對(key--value)叫做字典中的一個元素,也叫做一個條目,只要是對象就可以,不限制類型
 4.字典 是無序的
 5.字典中的key是爲一的,一個key只能對應一個value,一個value可以對應多個key.
1.創建字典對象
(1)便利構造器
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"lll",@"name",@21,@"height",@12,@"age", nil];
NSLog(@"%@",dic);
(2)初始化方法
NSDictionary *dic1 = [[NSDictionary alloc]initWithObjectsAndKeys:@"lll",@"name",@21,@"height",@12,@"age", nil];
NSLog(@"%@",dic1);
2.求字典元素個數
NSUInteger count = [dic count];
NSLog(@"%ld",count);
3.獲取所有的key
NSArray *keys = [dic allKeys];
NSLog(@"%@",keys);
4.根據key獲取對應的value(注意類型要匹配)
NSString *name = [dic objectForKey:@"name"];
NSNumber *age = [dic objectForKey:@"age"];
NSNumber *height = [dic objectForKey:@"height"];
NSLog(@"%@ %@ %@",name,age,height);
5.快速遍歷
 快速遍歷對於數組來說,遍歷的是數組中的每一個元素
 對於字典來說,遍歷的是字典中的key,然後通過key獲取value(一個key 對應 一個 value 而 一個value 對應多個key)

for (NSString *key in dic) {
檢索到key之後,通過 objectForKey 獲取key對應的value
NSLog(@"%@",[dic objectForKey:key]);
 }
/////////////////////////////////////////
 NSMutableDictionary
 對於可變字典來說,比不可變字典多了增刪改操作
1.創建對象
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoguang",@"guanggun1",@"xiaoshuai",@"guanggun2",@"xiaomeng",@"guanggun3", nil];
NSLog(@"%@",dic);
2.求字典元素個數
NSLog(@"%lu",[dic count]);
3.刪除元素
[dic removeObjectForKey:@"guanggun1"];
NSLog(@"%@",dic);
[dic removeAllObjects];
NSLog(@"%@",dic);
4.添加元素
[dic setObject:@"chengjie" forKey:@"guanggun1"];
NSLog(@"%@",dic);

5.修改key對應的value
[dic setObject:@"xiaocui" forKey:@"guanggun1"];// 集合1.無序性2.確定性3.互異性
1.創建集合對象
(1)便利構造器
NSSet *set = [NSSet setWithObjects:@"1",@"2",@"3",@"4",@"5",@"1",@"2",@"3",@"4",@"5", nil];
NSLog(@"%@",set);
(2)初始化方法
NSSet *set1 = [[NSSet alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"1",@"2",@"3",@"4",@"5", nil];
NSLog(@"%@",set1);
2.獲取元素個數
NSLog(@"%lu",[set count]);
3.獲取集合中的某個元素
NSString *str1 = [set anyObject];
NSLog(@"%@",str1);
NSString *str2 = [set anyObject];
NSLog(@"%@",str2);
NSString *str3 = [set anyObject];
NSLog(@"%@",str3);
NSString *str4 = [set anyObject];
NSLog(@"%@",str4);

4.判斷集合中是否包含某個對象
BOOL isExist = [set containsObject:@"2"];
NSLog(@"%d",isExist);
/////////////////////////////
可變集合
 NSMutableSet
NSMutableSet *set2 = [NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"5",@"1",@"2",@"3",@"4",@"5", nil];
NSLog(@"%@",set2);

1.添加元素
[set2 addObject:@"5"];
NSLog(@"%@",set2);

2.刪除元素
[set2 removeObject:@"3"];
NSLog(@"%@",set2);

NSLog(@"%@",dic);
 setObject:forKey:工作原理:先根據指定的key查找字典中是否存在相同的key(查找字典中是否存在指定的key),如果存在,則修改key對應的value.如果不存在,在字典中添加一個元素,key-value對.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章