OC-NSDictionary

本文深入探讨了字典数据结构在编程中的应用,详细介绍了不可变和可变字典的创建方法,以及如何进行遍历、获取键值对个数、查找和操作键值对等核心功能。通过实例演示了字典的主要用途,为开发者提供了高效管理数据的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典


分类:不可变和可变字典

元素类型:id(即:任意的对象指针)

特点:字典是无序的

内容:键值对:key -->value;键值对必须成对出现,key一般是NSString*类型,方便操作


------------------------------------------------------------------------------------

1)创建一个不可变字典:

方法一:

NSDictionary * dict = [[NSDictionaryalloc]initWithObjectsAndKeys:@"one",@"1",@"tow",@"2",@"three",@"3",@"four",@"4",@"five",@"5",@"ten",@"10",nil];


方法二:

NSDictionary * dict2 = [NSDictionarydictionaryWithDictionary:dict];


方法三:

NSArray * keys = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];

NSArray * values = [[NSArrayalloc]initWithObjects:@"one",@"two",@"three",nil];

NSDictionary * dict3 = [[NSDictionaryalloc]initWithObjects:values forKeys:keys];


------------------------------------------------------------------------------------------------------------------------

2)遍历字典:

说明:a.字典的查找效率要比数组快

         b.哈希   

方法一:

//创建一个key的枚举器

NSEnumerator * enumer1 = [dict3keyEnumerator];

id key;

//遍历字典

while (key = [enumer1nextObject])

{

   NSLog(@"value = %@",[dict3 objectForKey:key]);

}

        

方法二:

//快速枚举,枚举的是key

for (id keyin dict3) 

{

    NSLog(@"key = %@ , value = %@",key,[dict3objectForKey:key]);

}

------------------------------------------------------------------------------------

3)获取键值对个数

例子:

NSLog(@"count = %ld",[dict3count]);//键值对的个数


------------------------------------------------------------------------------------

4)字典的最主要功能:根据key找到对应值

例子:

NSLog(@"%@",[dict3objectForKey:@"three"]);


------------------------------------------------------------------------------------

5)创建可变字典:

例子:

NSMutableDictionary * dict = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",nil];


------------------------------------------------------------------------------------

6)对可变字典的操作:

----------增------------

[dictsetObject:@"4"forKey:@"four"];//增加键值对


----------删------------

[dictremoveObjectForKey:@"one"];//删除键值对

[dictremoveAllObjects];//删除所有的键值对


----------改------------

[dictsetObject:@"yi"forKey:@"one"];//如果字典中这个key存在那么setObject: forKey:代表的是修改、、如果key不存在那么代表的增加


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值