键值在字典中是一一对应的,成对存在的.
与数学中的集合一样,存储的元素互不相同.
//字典存在的价值:1.大容器,用来存储多个数据 2.用来存储的数据具有--对应的关系(使用key来标识value) 3.对于字典中的一对键值对(key-value)叫做字典中的一个元素.也叫一个条目,只要是对象就可以,不限制类型. 4.字典是无序的. 5.字典中的key是唯一的,一个key只能对应一个value,一个value可以对应多个key.
//创建字典对象
//(1)便利构造器
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"zhiyuan", @"name", @20, @"height", @12, @"age", nil];
NSLog(@"%@", dic);
//(2)初始化方法
NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"wangwu", @"name", @20, @"height", @12, @"age", nil];
NSLog(@"%@", dic1);
//2.求字典元素个数
NSUInteger count = [dic1 count];
NSLog(@"%ld", count);
//3.获取所有的key值
NSArray *arr = [dic1 allKeys];
NSLog(@"%@", arr);
//4.根据key获取对应的value
NSString *str1 = [dic1 valueForKey:@"name"];
NSLog(@"%@", str1);
NSNumber *numb = [dic1 valueForKey:@"height"];
NSLog(@"%@", numb);
NSNumber *age = [dic1 valueForKey:@"age"];
NSLog(@"%@", age);
//5.字典快速遍历
//快速遍历:对于数组来说,遍历得到的是数组中的每一个元素
//对字典来说,遍历得到的是字典中的key, 然后通过key获取value
for (NSString *key in dic1) {
//检索到key之后,通过objectForkey:获取key对应的value
NSLog(@"%@", [dic objectForKey:key]);
}
//对于可变字典来说,比不可变字典多了增加,删除,修改操作.
//1.创建对象
NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"zhangsan", @"guangGun1", @"xiaomeng", @"guangGun2", @"xiaoshuai", @"guangGun3", nil];
NSLog(@"%@", mDic);
//2.求字典元素个数
NSLog(@"%ld", [mDic count]);
//3.删除元素
[mDic removeObjectForKey:@"guangGun2"];
NSLog(@"%@", mDic);
[mDic removeAllObjects];
NSLog(@"%@", mDic);
//4.添加元素
[mDic setObject:@"xiaoming" forKey:@"guangGun4"];
NSLog(@"%@", mDic);
//5.修改key对应的value
[mDic setObject:@"xiaocui" forKey:@"guangGun4"];
NSLog(@"%@", mDic);
//setObject:forKey:工作原理
//先根据指定的key查找字典中是否存在相同key(查找字典中是否存在相同的key),如果没有的话,如果存在,则修改key对应的value. 如果不存在,在字典中添加一个元素,key-value键值对
OC之字典(NSDictionary, NSMutableDictionary)
最新推荐文章于 2021-05-09 17:25:11 发布