字典

字典

字典分为可变字典和不可变字典
1.NSMutableDIctionary是由键—值对组成的数据集合。正如,我们在字典里查找单词的定义一样。通过键(key),查找对应的值,所有的key都是字符串对象,值可以使其他任意类型。
字典里的key不能为空, 字典里的键—值是成对出现的。
在一个字典里的key必须是唯一的。
一个字典对象中表示空值,可以使用NSNull对象

2.为什么要使用字典,为什么不使用数组
数组特征:是按一定顺序去排列的集合,通过下标去存取值(当希望数据是按照一定顺序去排列的时候 选择使用数组)
字典特征:通过key存取值 key是我们指定的一个标记(获取一个具体的表示准确的得到想要的值)

3.字典的初始化
不可变字典的类名 NSDictionary
a. NSDictionary *dic = [[NSDictionary alloc]init];
初始化一个空字典
b.NSDictionary *dic1 = [NSDictionary dictionary];

4.字典的赋值
a.初始化的同时 添加一对键-值

 NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"valus" forKey:@"key"];//通过key  可以取到valus这个值
  b.初始化的同时 添加多对 键值

赋值时 前面是值  可以任意类型

后面是key  必须是字符串  注意赋值是为偶数
NSDictionary *dic3 = [NSDictionary  dictionaryWithObjectsAndKeys:@"object", @"key", @"object1", @"key1",nil];
   c.字典的新写法

  前面是key  后面是值
  NSDictionary  *dic4 = @{@"key":@"值", @"key1":@"值1”};

5.字典的取值

a. objectForKey:通过key取字典里的值

 NSDictionary  *dic5 = @{@"key":@"值", @"key1":@"值1"};
 NSString *str  =  [dic5 objectForKey:@"key"];
      NSLog(@"%@", str);

b.第二种取值方式 字典名[@”key1”];

NSString *str1 = dic5[@"key1"];
    NSLog(@"%@", str1);

6.字典练习题

练习题 1、用字典 表达出自己的分数 语文25 数学1000 英语3
分别取出语文数学英语的成绩

 NSDictionary *score = [NSDictionary  dictionaryWithObjectsAndKeys:@"25", @"yuwen", @"1000", @"shuxue", @"3", @"yingyu", nil];
        NSString *a  = [score objectForKey:@"yuwen"];
        NSString *b = [score objectForKey:@"shuxue"];
        NSString *c = [score  objectForKey:@"yingyu"];
        NSLog(@"%@", a);
        NSLog(@"%@", b);
        NSLog(@"%@", c);
//   字符串的拼接
     NSString *allScore = [NSString  stringWithFormat:@"语文:%@ 数学:%@ 英语%@", [score objectForKey:@"yuwen"], [score objectForKey:@"shuxue"], [score objectForKey:@"yingyu"]];
        NSLog(@"%@", allScore);

2、用字典 表达出 一年四季的 特征
// 分别取出每个季节的特征

 NSDictionary  *season = [NSDictionary  dictionaryWithObjectsAndKeys:@"万物苏醒", @"spring",  @"万物开花",  @"summer",  @"百花凋零",  @"autume",  @"纷飞飘雪",  @"winter", nil];
        NSLog(@"春天是:%@ 夏天是:%@ 秋天是:%@ 冬天是:%@",  [season objectForKey:@"spring"],  [season objectForKey:@"summer"],  [season objectForKey:@"autume"],  [season objectForKey:@"winter"]);

7.可变字典

可变字典的初始化

NSMutableDictionary *dic6 = [NSMutableDictionary dictionary];

设置可变字典的值

     [dic6 setObject:@"金刚芭比" forKey:@"name"];
     [dic6 setObject:@"金刚" forKey:@"name”];

通过key 移除key对应的key和值
[dic6 removeObjectForKey:@”name”];
NSLog(@”%@”, dic6);

8.遍历字典

遍历字典的全部键值

for (NSString *key in season.allKeys ) {
            NSLog(@"%@ %@", key, [season objectForKey: key]);
         }//allKeys  是所有  key的一个数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值