NSDictionary 简介

字典是一个无序的集合,也可称之为键值对。与数组不同的是字典可以通过特定的key快速查找到想要的值,而不用遍历字典。所以一个唯一的key只能对应一个值,而多个key可以对应同一个值。字典分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary)。本篇文章只介绍NSDictionary。。。

1、不可变字典的创建(注意书写规范)

1>初始化创建字典

NSDictionary* dict1=[[NSDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //实例方法

 NSDictionary* dict2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3", nil]; //类方法

2>通过键值数组创建字典

NSDictionary* dict3=[[NSDictionary alloc]initWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]]; //实例方法

    NSDictionary* dict4=[NSDictionary dictionaryWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]];//类方法

3>通过已有的字典创建

NSDictionary* dict5=[[NSDictionary alloc]initWithDictionary:dict1];//实例方法

NSDictionary* dict6=[NSDictionary dictionaryWithDictionary:dict1];//类方法

4>最简单的方式

NSDictionary *dict7=@{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};

2、遍历字典

NSDictionary *dict1=@{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"};

//通过key查找value
NSString* obj=[dict1 objectForKey:@"k3"];
NSLog(@"value:%@", obj);

//获取所有的key
NSArray *keys=[dict1 allKeys];
NSLog(@"所有的键:%@", keys);

//获取所有的值
NSArray *values=[dict1 allValues];
NSLog(@"所有的值:%@", values);

//快速枚举法遍历  **枚举的是key**
for(id obj in dict1)
{
    NSLog(@"key:%@", obj); //键
    NSLog(@"value:%@", [dict1 objectForKey:obj]); //值
}

//枚举器法  objectEnumerator 枚举的是值
NSEnumerator *enumerator=[dict1 objectEnumerator];
id obj;
while(obj=[enumerator nextObject])
{
   NSLog(@"枚举器法obj:%@",obj);
}

//枚举器法 枚举键
NSEnumerator *kenumerator=[dict1 keyEnumerator];
id key;
while(key=[kenumerator nextObject])
{
   NSLog(@"键枚举器法key:%@",key);
}

//字典的长度
NSUInteger count=dict1.count;
NSLog(@"字典一共有%lu个键值对",count);

打印结果
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值