Objective-C基础知识点

第五讲:字典、集、数组排序(详情请参考源程序lession5-homework)
知识点:
字典:
1.字典用于保存具有映射关系数据的集合,一个key-value认为是一个条目(Entry),字典是存储key-value对的容器.
2.字典类的特点:字典靠key存取元素,key不能重复,value必须是对象,键值对在字典中是无序存储的.
3.不可变字典:字典一旦创建,键值对就不可更改,不可添加,不可删除,仅能读取key或value.可变字典可以对管理的键值对惊醒增、删、改.

集合(set):
1.集合的特点:集合中的元素唯一,存储的元素是无序的,存储元素必须是对象类型.IOS中用Set表示集合
2.不可变集合、可变集合和NSCountSet(能记录元素的重复次数,在set的基础上添加了计数功能->countForObject).

集合的快速枚举:(for...in...)


数组排序:(exchangeObjectAtIndex)
数组默认排序:不可变数组:[array sortedAarrayUsingSelector<#(SEL)#>]
可变数组:[mutableArray sortUsingSelector<#(SEL)#>]
@select,获取方法名.这个方法名师叔祖中的方法 //默认使用升序排列




//字典
//1.不可变字典

//方法1.初始化

//方法2

//键值对的数量

//获取所有的key值

//获取所有的value值

//获取某个key值的value;

//获取一个对象的所有key值



//可变字典

//方法1.初始化

//方法2.删除键值对

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

//删除所有的键值对

//方法3.增加键值对

//从一个字典中添加一个键值对

//方法4.设置键值对[Entry]的值



//集合

//不可变集合

//方法1.初始化

//2.集合中元素的个数

//3.随机取出集合中的元素

//4.判断集合中是否含有某个元素,若有则返回该值



//可变集合

//1.初始化(参考不可变集合初始化方法,此处只列举一个).

//2.往集合中添加元素

//3.删除某个元素

//4.删除全部元素.

//5.元素个数.



//NSCountedSet:计重复元素个数的功能

//初始化

//元素个数

//计重复元素个数



//快速枚举

//数组排序

//字典

/*



    //字典

        /*

         

        //1.不可变字典

        

        //方法1.初始化

        

        //初始化方法1.

        NSDictionary *dic = [NSDictionary dictionaryWithObject:@"yangxiutao" forKey:@"name"];

        NSLog(@"%@",dic);

        //初始化方法2.

        NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"yangxiutao",@"name",@"23",@"age",@"man",@"sex", nil];

        NSLog(@"%@",dic1);

        //初始化方法3.

        NSArray *array = [NSArray arrayWithObjects:@"yangxiutao",@"man",@"24", nil];

        NSArray *array2 = [NSArray arrayWithObjects:@"name",@"sex",@"age", nil];

        NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:array forKeys:array2];

        NSLog(@"%@",dic2);

        //初始化方法4.

        NSDictionary *dic3 = [NSDictionary dictionary];

        dic3 = dic;

        NSLog(@"%@",dic3);

        

        //方法2

        NSArray *array = [NSArray arrayWithObjects:@"yangxiutao",@"man",@"24",@"jiangkun",@"man",@"23", nil];

        NSArray *array2 = [NSArray arrayWithObjects:@"name",@"sex",@"age",@"name1",@"sex1",@"age1", nil];

        NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:array forKeys:array2];

        NSLog(@"%@",dic2);

        

        //键值对的数量

        NSInteger num = [dic2 count];

        NSLog(@"%lu",num);

        

        //获取所有的key值

        NSArray *array1 = [dic2 allKeys];

        NSLog(@"%@",array1);

        

        //获取所有的value值

        NSArray *array3 = [dic2 allValues];

        NSLog(@"%@",array3);

        

        //获取某个key值的value;

        NSString *str = [dic2 objectForKey:@"name"];

        NSLog(@"%@",str);

        

        //获取一个对象的所有key值

        NSArray *array4 = [dic2 allKeysForObject:@"yangxiutao"];

        NSLog(@"%@",array4);

        

        

        

        //可变字典

        

        //方法1.初始化

        //初始化方法1.

        NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:@"yangxiutao" forKey:@"name"];

        NSLog(@"%@",dic);

        //初始化方法2.

        NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"yangixutao",@"name",@"man",@"sex",@"23",@"age",                 nil];

        NSLog(@"%@",dic1);

        //初始化方法3.

//        NSMutableArray *array = [NSMutableArray arrayWithObjects:@"yangixutao",@"man",@"23", nil];

//        NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"name",@"sex",@"age", nil];

        NSArray *array = [NSArray arrayWithObjects:@"yangixutao",@"man",@"23", nil];

        NSArray *array1 = [NSArray arrayWithObjects:@"name",@"sex",@"age", nil];



        NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjects:array forKeys:array1];

        NSLog(@"%@",dic2);

        //初始化方法4.

        NSMutableDictionary *dic3 = [NSMutableDictionary dictionaryWithDictionary:dic2];

        NSLog(@"%@",dic3);

        

        

        //方法2.删除键值对

        

         NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"yangixutao",@"name",@"man",@"sex",@"23",@"age",nil];

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

        [dic1 removeObjectForKey:@"sex"];

        NSLog(@"%@",dic1);

        

        //删除所有的键值对

        [dic1 removeAllObjects];

        NSLog(@"%@",dic1);

        

        

        //方法3.增加键值对

        

        NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"yangixutao",@"name",@"man",@"sex",@"23",@"age",                 nil];

        NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"li",@"name1",@"18",@"age1",@"nv",@"sex1", nil];

        

        //从一个字典中添加一个键值对

        [dic1 addEntriesFromDictionary:dic];

        NSLog(@"%@",dic1);

        

        

        //方法4.设置键值对[Entry]的值

        

        NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"yangixutao",@"name",@"man",@"sex",@"23",@"age",                 nil];

        

        //根据某个键值设置Value的值,用setObject:(id) forKey:(id<NSCopying>)设置Value值时,当Value为nil时,程序直接崩溃.

        [dic1 setObject:@"li" forKey:@"name"];

        NSLog(@"%@",dic1);

        

//        [dic1 setObject:nil forKey:@"name"];

//        NSLog(@"%@",dic1);

        

        //根据某个键值设置Value的值,用setValue:(id) forKey:(NSString *)设置Value值时,当Value为nil时,程序直接删除该条目.

        [dic1 setValue:@"y" forKey:@"name"];

        NSLog(@"%@",dic1);

        

        [dic1 setValue:nil forKey:@"name"];

        NSLog(@"%@",dic1);

        */

        

    //集合

        /*

        //不可变集合

        

        //方法1.初始化

        

        //初始化只有一个元素的集合

        NSSet *set = [NSSet setWithObject:@"fdg"];

        NSLog(@"%@",set);

        

        //初始化一个含有多个元素的集合

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];

        NSLog(@"%@",set1);

        

        //用集合初始化集合

        NSSet *set2 = [NSSet setWithSet:set];

        NSLog(@"%@",set2);

        

        //用数组初始化集合

        NSArray *array = [NSArray arrayWithObjects:@"sdf",@"23",@"ht",@"fgf", nil];

        NSSet  *set3 = [NSSet setWithArray:array];

        NSLog(@"%@",set3);

        

        

        //2.集合中元素的个数

        

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];

        [set1 count];

        NSLog(@"%lu",(unsigned long)set1.count);

        

        

        //3.随机取出集合中的元素

        

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];

        [set1 anyObject];

        NSLog(@"%@",set1.anyObject);

         

        

        //4.判断集合中是否含有某个元素,若有则返回该值

        

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];

        NSString *str = [set1 member:@"boofl"];

        NSLog(@"%@",str);

        

        //5.判断集合中是否含有某个元素,若有则返回TRUE

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];

        [set1 containsObject:@"23fsdf"];

        NSLog(@"%i",[set1 containsObject:@"fgdf"]);

        NSLog(@"%i",[set1 containsObject:@"qqwxv"]);



        

        //可变集合

        

        //1.初始化(参考不可变集合初始化方法,此处只列举一个).

        

        NSMutableSet *set = [NSMutableSet setWithObjects:@"re",@"ff",@"ger",@"hys", nil];

        

        //2.往集合中添加元素

        [set addObject:@"yangxiutao"];

        NSLog(@"%@",set);

        

        //3.删除某个元素

        [set removeObject:@"re"];

        NSLog(@"%@",set);

        

        //4.删除全部元素.

//        [set removeAllObjects];

//         NSLog(@"%@",set);

        

        //5.元素个数.

        NSLog(@"%li",set.count);

        

    

        

        //NSCountedSet:计重复元素个数的功能

        

        //初始化

        NSCountedSet *set1 = [NSCountedSet setWithObjects:@"111",@"222",@"333",@"444",@"444",nil];

        NSLog(@"%@",set1);

        

        //元素个数

        [set1 count];

        NSLog(@"%lu",set1.count);

        

        //计重复元素个数

        [set1 countForObject:@"111"];

        NSLog(@"%lu",[set1 countForObject:@"444"]);

*/

        

    //快速枚举

        /*

        NSSet *set1 = [NSSet setWithObjects:@"qqwxv",@"frscg",@"hgrt",@"boofl", nil];



        for (NSString *str in set1) {

            NSLog(@"%@",str);

        }

        

        */

        

    //数组排序

        /*

        //typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};



        NSMutableArray *array = [NSMutableArray arrayWithObjects:@"fsd",@"te",@"wf",@"rh", nil];

        

        for (int i = 0; i < array.count - 1; i++) {

            for (int j = 0 ; j < array.count - 1 - i; j++) {

                if ([[array objectAtIndex:j] compare:[array objectAtIndex:j + 1]] == 1) {

                    [array exchangeObjectAtIndex:j withObjectAtIndex:j+1];

                }

            }

        }

        NSLog(@"%@",array);

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
基于hal库的OLED显示屏驱动C语言实现源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值