iOS开发-OC语⾔(四)数组知识点
1.NSArray
2.NSMutableArray
1.数组的基本⽤法;
2.数组的遍历
3.数组排序
===========  NSArray  不可变数组  =================
1、OC数组和c数组的区别
C语⾔的数组:
相同类型变量的有序结合。类型:可以是简答数据类型、构造数据类型
int    a[10];
int  *b[10];
1)NSArray是⼀个对象,是任意类型对象地址的集合
不能存放简单的数据类型(int, float, NSInteger…)
除⾮通过⼀些⼿段把简单数据类型变成对象。
2)C数组可以保存任意类型的数据
3)NSArray下标越界不会有警告,但是运⾏会直接报错
2、如何创建⼀个空数组
NSArray *array = [[NSArray alloc] init];
array = [NSArray array];
3. 通过指定对象创建数组
//只有⼀个元素
array = [NSArray arrayWithObject:@"aaa"];
//有n个元素
array = [NSArray arrayWithObjects:@"1111",@"2222",@"333", nil];
4.通过指定数组创建数组(两个数组内容的⼀样)
[NSArray arrayWithArray:数组];
5.通过简单的⽅式创建数组
array = @[];//空数组
array = @[@"111",@"222",@"333"];//3个元素
6.把数组中所有的元素转化为字符串
[array componentsJoinedByString:@“两个元素之间添加的字符串”];
7.获取数组元素个数
[array count]
8.通过索引获取相应的元素(下标要⼩于数组的count)
[array objectAtIndex:下标];
简单取值:array[下标]
9.通过对象获取在数组中的索引(通过元素获取下标)
[array indexOfObject:要的元素]
10.取出数组的最后⼀个元素或者第⼀个元素
//取第⼀个元素
[array firstObject];
//取最后⼀个
[array lastObject];
11.判断数组中数组包含某个元素
[array containsObject:要查的对象]
12.如何取出数组中的⼀部分元素
//索引的集合,保存索引的,NSIndexSet是⼀个集合类(索引的集合),但是集合⾥⾯不能有重复索引
//只初始化⼀个索引
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:2];
//下标为1,长度为2
NSRange range = NSMakeRange(0, 3);
//构造⼀个范围的索引
indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
[array objectsAtIndexes:indexSet]
13.判断NSArray中存储的对象是否为指定类型的对象
/*
[A isKindOfClass:B],判断A类是否是B的⼦类或者本类。
[A isMemberOfClass:B],判断A类是否是B类(不包括⼦类)
*/
14.判断两个数组内容是否相同(与顺序有关)
NSArray *arr1 = @[@"111",@"222",@"333"];
NSArray *arr2 = @[@"111",@"333",@"222"];
if ([arr1 isEqualToArray:arr2])
{
NSLog(@"内容完全相等");
}
else
{
NSLog(@"内容不完全相等");
}
15.把数组写⼊⽂件中(数组⾥⾯是:NSString,int,)  [array writeToFile:path atomically:YES]
16.从⽂件中读取数组
[NSArray arrayWithContentsOfFile:path]
17.基本类型的包装类
NSNumber
//把int类型包装成对象
numberWithInt
18.截取数组中指定范围的元素
[array subarrayWithRange:要截取的范围]
=============  NSArray数组的遍历 ===========
1.通过下标遍历数组
for (int i = 0 ; i < [array count]; i++)
{
NSLog(@"%@",array[i]);
}
2、NSEnumerator  枚举器
1)objectEnumerator消息
作⽤:正序输出所有元素
NSEnumerator *enumerator = [array objectEnumerator];
2)reverseObjectEnumerator消息
作⽤:逆序输出所有元素
enumerator = [array reverseObjectEnumerator];
//取下⼀个元素
[enumerator nextObject]
3.快速枚举法(for in)
for (类型 *变量 in 数组)
4.block⽅法遍历
=========    NSMutableArray可变数组    =============
1.思考:为什么需要有NSMutableArray
string字符串转化数组2.NSMutableArray的作⽤
3.如何创建⼀个NSMutableArray
1)创建空数组
<1>NSMutableArray *array = [[NSMutableArray alloc] init];
<2>array = [NSMutableArray array];
2)创建有对象的数组
《1》初始化只能有⼀个对象
NSMutableArray arrayWithObject:@"111"];
《2》初始化只能有多个对象
[NSMutableArray arrayWithObjects:@"1111",@"222",@"333",@"4444", nil];
[[NSMutableArray alloc] initWithObjects:<#(id), ...#>, nil];
4.可变数组添加元素
1)向可变数组⾥⾯添加元素(在最后添加)
[array addObject:元素];
2)如何向可变数组中插⼊⼀个元素
/*
添加⼀个元素
*/
//在下标为0的位置添加333
[array insertObject:@"333" atIndex:0];
3)如何向可变数组中插⼊多个元素
/
*添加多个元素*/
//要添加的元素
NSArray *insertArray = @[@"444",@"555"];
//要添加的索引
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, [insertArray count])]; /*注意:要添加元素数组的个数等于索引集合的个数,否则crash*/
[array insertObjects:insertArray atIndexes:indexSet];
5.根据数组下标取值
[array objectAtIndex:下标];
6、如何删除元素
1)删除指定索引的元素

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。