分类
1. Array 有序,包含index和value两部分
2. Set 无序
3. Dictionary key指向value(一对一或多对一)
数组
NSArray
1. 引用类型
2. 初始化:NSArray *array3=@[@"Shanghai",@"Beijing",@"New York",@"Paris"];
3. 数组元素必须为对象,对于值类型需要用NSNumber封装
对于结构类型,需要用NSValue封装
注意:堆的生存周期比栈要长,因此堆上不能有指针指向栈上的元素
4. 常量性:不能更改数组长度,不能更改指针,但指针指向的对象可以更改
数组遍历
1. 快速枚举:for in √
2. 迭代器模式
3. 传统for循环
数组查找
1. indexOfObject 值相等(需要修改isEqual类)
2. indexOfObjectIdenticalTo 引用相等
数组排序
1. 由于数组常量性,排序后返回新数组
2. 字符串按字母排序
NSMutableArray
支持更改数组长度和元素指针
1. 修改元素:添加、删除、插入、替换
2. 与NSMutableString类似,NSMutableArray在初始化时也需要预估容量,避免缓存容量成倍增长
3. 避免插入、删除等需要大量内存拷贝的操作
Set集合
1. 无序,不能有重复元素
2. 引用类型
3. 有NSSet和NSMutableSet
4. 初始化
5. 常用操作:
set2.count 取集合长度
containsObject 查找(返回0或1)
for in 遍历
Dictionary字典
1. 存储key-value 无序
2. 有NSDictionary和NSMutableDictionary
3. 初始化
4. 索取元素
5. for in 遍历