5、字典、集合、数组排序
来源:互联网 发布:身份证号的js验证 编辑:程序博客网 时间:2024/05/16 00:56
字典类
字典简介
- 字典⽤于保存具有映射关系(key-value对)数据的集合
- 对于“name:张三”来讲,key就是“name”,key对应的value是“张三”
- ⼀个key-value对认为是⼀个条⺫(Entry),字典是存储key-value对的容器
特点
- 与数组不同,字典靠key存取元素
- key不能重复,value必须是对象
- 键值对在字典中是⽆序存储的
- 不可变字典(NSDictionary)和可变字典
(NSMutableDictionary)
NSDictionary(不可变字典)
字典⼀旦创建,键值对就不可更改,不可添加,不可删除
仅能读取key或者value
常⽤⽅法
- 创建字典对象
- 获取所有key值,获取所有value值
- 通过key值查询value
NSMutableDictionary(可变字典)
NSDictionary的⼦类
可以对管理的键值对进⾏增、删、改
常⽤⽅法
- 创建字典对象
- 添加键值对
- 修改key对应的value
- 删除键值对
- 通过for循环遍历所有键值对
集合类(set)
特点
- 与数学中的集合⼀样,集合中的元素唯⼀
- 存储的元素是⽆序的
- 存储元素必须是对象类型
- iOS中⽤Set表⽰集合,分NSSet和NSMutableSet
NSSet(不可变集合)
- 创建集合对象
- 获取元素个数
- 获取集合中的某个元素
- 判断集合中是否包含某个对象
NSMutableSet(可变集合)
- 创建集合对象
- 添加元素
- 删除元素
NSCountedSet
- NSCountedSet是NSMutableSet的⼦类
- 能记录元素的重复次数
- 在set的基础上添加了计数功能:- countForObject:
数组、字典、集合的快速遍历
for (<#type *object#> in <#collection#>) { //object是遍历得到的元素对象//collection是集合类型的对象:数组、字典、集合}
结合类型枚举特点
- 数组枚举得到数组中的元素对象
- 字典枚举得到字典中的key值
- 集合枚举得到集合中的元素对象
数组排序
参考资料:
Objective C中数组排序几种情况的总结
//数据源,对数组里面的字典的age属性进行排序NSMutableArray *array1 = [[NSMutableArray alloc ]initWithObjects: @{@"name":@"a",@"age":@"22"}, @{@"name":@"b",@"age":@"32"}, @{@"name":@"c",@"age":@"25"}, @{@"name":@"d",@"age":@"45"}, @{@"name":@"e",@"age":@"56"}, nil];
冒泡排序
//冒泡排序for (int i = 0; i<[array1 count]-1; i++) { for (int j =0; j<[array1 count]-i-1; j++) { NSInteger data1 = [array1[j+1][@"age"]intValue];//将对象类型转换为NSInteger NSInteger data2 = [array1[j] [@"sex"]intValue];//将对象类型转换为NSInteger if (data1 == MIN(data1, data2)) {//判断data1与data2的大小,当data1<data2时执行交换,即降序排列 //对数组里的数据逆序存放 [array1 exchangeObjectAtIndex:j+1 withObjectAtIndex:j]; } }}
简单排序(sortedArrayUsingSelector:)
- [array sortedArrayUsingSelector:<#(SEL)#>]
- [mutableArray sortUsingSelector:<#(SEL)#>]
- @selector,获取⽅法名。这个⽅法名是数组中元素的⽅法。
- 默认使⽤升序排列
void sortArray1(){ NSArray *array = [NSArray arrayWithObjects:@"abc",@"456",@"123",@"789",@"ef",nil];//创建数组 NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(compare:)];//对数组进行排序,默认升序 NSLog(@"排序后:%@",sortedArray);}
0 0
- 5、字典、集合、数组排序
- 字典,集合,数组排序
- 字典、集合、数组排序
- OC第五天-字典,集合,数组排序
- Objective-C_字典、集合、数组排序
- day5: 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- OC基础第5讲)字典类 {集合类 数组,字典,集合的快速遍历 数组排序}
- OC学习第五天_字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- 数组,字典,集合
- OC数组字典集合
- OC--数组、字典、集合
- 字典,数组,集合区别
- 数组 字典 集合
- 集合(数组,字典)
- iOS:字典数组排序
- 数组字典排序
- Object-C 数组 字典 集合
- 数组,字典,集合的关系
- angularjs内联注入
- Java RMI之HelloWorld
- POJ3067(树状数组||线段树)
- 【新技术,学习、商业均可】HTML5 全新高大尚后台 bootstrap springmvc mybatis java企业级通框架源码入门
- n阶矩阵的乘法(C实现)
- 5、字典、集合、数组排序
- Ubuntu 14.04 英文版下安装搜狗拼音
- 关于网络二_HTTP协议访问网络:HttpUrlConnection、HttpClient
- [02]Hello World!
- 【UML】 之 构件图 & 部署图
- 面试书籍笔记
- 垃圾收集器回收对象的依据和时机
- 线性表
- 解决在onCreate()过程中获取View的width和Height为0的4种方法