博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字典操作
阅读量:5057 次
发布时间:2019-06-12

本文共 1906 字,大约阅读时间需要 6 分钟。

//创建字典对象,以键值对的形式存储,字典里键唯一,值可以不唯一,键,值为任意对象,且只能为对象

        

        /*****  直接创建字典  **********/

        NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"ab",@" ",@"three",@"3",@"two",@"2", nil];

        NSLog(@"第1种方式创建字典%@",dic1);//打印时,大括号是字典,小括号是数组

        NSLog(@"%ld",dic1.count);//求字典的长度

        //根据键来返回值

        id obj = [dic1 objectForKey:@"2"];

        NSLog(@"%@",obj);

        NSString *str1 = [dic1 objectForKey:@"2"];

        NSLog(@"%@",str1);

        

        /**   以2个相同的不可变数组来创建字典  **/

        NSArray *arr1 = @[@"one",@"two",@"three"];

        NSArray *arr2 = @[@"1",@"2",@"3"];

        NSDictionary *dic2 = [[NSDictionary alloc]initWithObjects:arr1 forKeys:arr2];

        NSLog(@"第2种方式创建字典%@",dic2);

        

        /*****************************/

        NSDictionary *dic3 = @{@"1":@"one",@"2":@"two",@"3":@"three"};

        NSLog(@"第3种方式创建字典%@",dic3);

        

        

        //返回所有的key

        NSArray *arr3 = [dic2 allKeys];

        NSLog(@"%@",arr3);

        

        //返回所有的value

        NSArray *arr4 = [dic2 allValues];

        NSLog(@"%@",arr4);

        

        //用快速枚举的方式枚举字典的值

        for (NSString *key in dic2)

        {

            id obj = [dic2 objectForKey:key];

            NSLog(@"%@",obj);

        }

        

        for (id key in dic2)//系统默认遍历字典里的键

        {

            id obj = [dic2 objectForKey:key];

            NSLog(@"%@",obj);

        }

        

        

        //创建一个空的可变字典

        NSMutableDictionary *dic4 = [[NSMutableDictionary alloc] init];

        NSMutableDictionary *dic5 = [NSMutableDictionary dictionary];

        NSLog(@"dic4 = %@",dic4);

        NSLog(@"dic5 = %@",dic5);

        

        //创建多个键值对的可变字典

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

        NSLog(@"dic6 = %@",dic6);

        

        //添加键值对,若果key存在,表示修改,不存在,表示添加

        [dic6 setObject:@"four" forKey:@"4"];

        NSLog(@"dic6 = %@",dic6);

        

        //删除键值对

        [dic6 removeObjectForKey:@"3"];

        NSLog(@"dic6 = %@",dic6);

        

        //删除多个key对应的键值对

        NSArray *arr5 = @[@"1",@"2"];

        [dic6 removeObjectsForKeys:arr5];

        NSLog(@"dic6 = %@",dic6);

        

        //删除所有的键值对

        [dic6 removeAllObjects];

        NSLog(@"dic6 = %@",dic6);

        

        //重置字典

        NSDictionary *newdic = @{@"1": @"one",@"2":@"two"};

        [dic6 setDictionary:newdic];

        NSLog(@"dic6 = %@",dic6);

转载于:https://www.cnblogs.com/woshihuaidan/p/4743439.html

你可能感兴趣的文章
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
IOS开发UI篇--UITableView的自定义布局==xib布局
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
查看>>
struts2中<s:form>的应用
查看>>
QML学习笔记之一
查看>>
7NiuYun云存储UploadPicture
查看>>
Window 的引导过程
查看>>
python与 Ajax跨域请求
查看>>
Java实体书写规范
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
六、PowerDesigner 正向工程 和 逆向工程 说明
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
贪吃蛇游戏改进
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
“前.NET Core时代”如何实现跨平台代码重用 ——源文件重用
查看>>
【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)
查看>>