Objective-C | 集合类
集合类
集合类特点:
所有的集合都是对象
集合中所有的元素都是对象而且只能是对象
简单数据类型用NSNumber封装成对象,复杂数据类型用NSValue封装
集合中不能存放nil对象,nil是作为集合结束的标志符
OC集合没有多维的概念,不会出现根本意义上的二维数组
集合的所有运算依赖于方法
数组NSArray
c语言数据类型(int,float,double,BOOL)要封装成NSNumber类型后,才能存在集合中
NSArray 不可变数组
- 初始化
1 | [[NSArray alloc]initWithObject:@“1”,@“2”,@“3”,nil] |
- 获取数组元素个数
1 | [array count]; |
- 添加元素
1 | [array arrayByAddingObject:@“4”]; |
- 查找元素
1 | NSInteger index = [array indexObject:@“3”]; |
- 获取元素
1 | //存入的是什么类型,取出就用什么类型接受 |
排序
快速枚举
1 | for(id obj in newArray){ |
NSMutableArray 可变数组
- 初始化
基本同上,不能直接使用简化方法,
1 | NSMutableArray *array = [@[@“1”,@“2”]mutableCopy]; |
- 增
1 | [mutableArray addObject:@“0”]; |
- 删
1 | [mutableArray removeObject:@“2”]; |
- 查
1 | [mutableArray indexOfObject:@“0”]; 查出在数组中的位置 |
- 改
1 | [mutableArray replaceObjectAtIndex:2 withObject:@“0”]; 改数组中对应位置的元素 |
- 排序
字典NSDictionay
关键字及其定义的集合,字典也被称为 散列表或关联数组
- NSDictionay | value - key
1.初始化
一般初始化:NSDictionary *dictionary = [[NSDictionary alloc]initWithObjectsAndKeys:@“one”,@“1”,@“two”,@“2”,nil];
便利初始化: NSDictionary *dictionary = [NSDictionary dictionaryWithObjectAndKeys:@“one”,@“1”,@“two”,@“2”,nil];
快速初始化: NSDictionary *dictionary = @[@“1”:@“one”,@“2”:@“two”];
2.查询 [dictionary objectForKey:@“2”]; dictionary[@“2”];
3.取出所有key NSArray *key = [dictionary allKeys];
4.取出所有对象 NSArray *objects = [dictionary allValue];
- NSMutableDictionay
初始化-基本同上
增
1 | [mutableDictionary setObject:@“six” forKey:@“6”]; |
- 删
1 | [mutableDictionary removeObjectForKey:@“6”]; |
- 查
1 | [mutableDictionary objectForKey:@“4”]; |
- 改(根据Key值覆盖之前的数据)
1 | [mutableDictionary setObject:@“sunny” forKey:@“4”]; |
- 遍历
1 | for(id key in mutableDictionary) { |
- 集NSSet
里面的对象不能存放重复的对象,主要用于去除重复数,可用来清除其它集合中的重复对象
1 | 去除重复数 |