#if 0
//字典:用來存儲具有以一一對應關系的數據,本質上也是一個大容器
//自定義初始化方式
NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"xiaoyali",@"name",@"nan",@"sex", nil];
NSString *name = [dic objectForKey:@"name"];
NSLog(@"%@",name);
NSString *sex = [dic objectForKey:@"sex"];
NSLog(@"%@",sex);
#endif
#if 0
//便利構造器方式
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaoyali",@"name",@"nan",@"sex", nil];
NSLog(@"%@",dic);
#endif
#if 0
//字面量方式
NSDictionary *dic = @{@"name":@"xiaoyali",@"sex":@"nan",@"age":@"18"};
NSLog(@"%@",dic);
//求字典的元素個數
NSUInteger count = dic.count;
NSLog(@"%lu",count);
//將所有的key放到了一個數組中
NSArray *keys = dic.allKeys;
NSLog(@"%@",keys);
//將字典中所有的value放到一個數組中
NSArray *values = dic.allValues;
NSLog(@"%@",values);
//字典取值
NSString *name = [dic objectForKey:@"name"];
NSLog(@"%@",name);
NSString *sex = [dic objectForKey:@"sex"];
NSLog(@"%@",sex);
BOOL a = dic.allKeys.count ;
NSLog(@"%d",a);
//字典本省是無序的
#endif
//可變字典
#if 0
//創建對象
NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"zhangsan",@"name",@"nan",@"sex", nil];
//字典增加一個元素
[dic setObject:@"18" forKey:@"age"];
NSLog(@"%@",dic);
[dic setObject:@"jinzhou" forKey:@"city"];
NSLog(@"%@",dic);
//修改名字為xiaoyali
[dic setObject:@"xiaoyali" forKey:@"name"];
NSLog(@"%@",dic);
//setObject:forKey工作原理:先查找字典中有沒有對應的key,如果有,則修改key所對應的value,如果沒有則把key-value作為元素添加到字典中
[dic setObject:@"dalian" forKey:@"city"];
NSLog(@"%@",dic);
//移除元素
[dic removeObjectForKey:@"city"];
NSLog(@"%@",dic);
//刪除所有元素
[dic removeAllObjects];
NSLog(@"%@",dic);
#endif
#if 1
//數組套數組
NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"11",@"22", nil];
NSMutableArray *array2? = [NSMutableArray arrayWithObjects:@"323",@"35",@"45", nil];
NSMutableArray *array = [NSMutableArray array];
[array addObject:array1];
[array addObject:array2];
NSLog(@"%@",array);
//數組里放字典
NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"name", nil];
NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lisi",@"name", nil];
[array addObject:dic1];
[array addObject:dic2];
NSLog(@"%@",array);
NSMutableDictionary *dic3 = array[3];
NSLog(@"%@",dic3);
//創建一個空字典
//字典里套數組
NSMutableDictionary *myDic = [NSMutableDictionary dictionary];
[myDic setObject:array forKey:@"one"];
[myDic setObject:array forKey:@"two"];
NSLog(@"%@",myDic);
//字典里套字典
[myDic setObject:dic1 forKey:@"three"];
[myDic setObject:dic2 forKey:@"four"];
NSLog(@"%@",myDic);
#endif
#if 0
//不可變集合
//特點:無序性,互異性,本質上是一個大容器
NSSet *mySet =[[NSSet alloc] initWithObjects:@"aa",@"bb",@"cc",@"dd",@"aa",@"bb",@"bb",@"cc", nil];
NSLog(@"%@",mySet);
//元素的個數
NSUInteger count = mySet.count;
NSLog(@"%lu",count);
//獲取集合中的元素
NSString *string = [mySet anyObject];
NSLog(@"%@",string);
//將集合中的元素取到一個數組中
NSArray *array = mySet.allObjects;
NSLog(@"%@",array);
#endif
#if 0
//可變集合
NSMutableSet *mySet = [NSMutableSet setWithObjects:@"aa",@"bb", nil];
//添加元素
[mySet addObject:@"cc"];
[mySet addObject:@"bb"];
NSLog(@"%@",mySet);
NSLog(@"%lu",mySet.count);
//刪除元素
[mySet removeObject:@"aa"];
NSLog(@"%@",mySet);
//遍歷
for (NSString *string in mySet) {
NSLog(@"%@",string);
}
#endif
/*
數組,字典,集合的區別:
相同點:都是OC中的容器類,可以儲存多個元素,但元素必須都是對象,不限制對象的類型.
不同點:
1.使用場景:
數組:用來管理一組有序的元素的集合.
字典:用來管理一組具有一一對應關系的數據的集合.
集合:用來管理一組無序并且具有互異性的元素的集合.
2.特點:
數組:有序,并且元素可以重復使用
字典:無序,key-value是字典中的一個元素,key是唯一的,一個key只能對應一個value,但是一個value可以對應多個key.
集合:無序,元素具有互異性,
3.取值方式:
數組:通過下標獲取元素
字典:通過key值,獲取元素
集合:anyObject? 或得一個數組? forin遍歷
*/