1:数组的基本概念
Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标获取到数组中的
各个元素.与字符串相同,数组也是可变和不可变数组之分.此外,数组中不可以存放基本数组类型,只能存放类的
实例(对象).如若需要将基本数据类型,结构体放入数组中,需要通过NSNumber,NSValue进行数据的“封装”
2:不可变数组-NSArray
一:数组的初始化
// 不可变数组的初始化
NSArray *firstArray=[NSArray arrayWithObject:@"abc"]; // 多个元素初始化时,注意以nil作为数组的结束 NSArray *secondArray=[NSArray arrayWithObjects:@"one","two", nil]; NSArray *thirdArray=[NSArray arrayWithArray:secondArray]; NSArray *fourArray=[NSArray arrayWithContentsOfFile:@"/apple/user/array.txt"];
二:获取数组中的元素个数和访问
//获取数组中的元素个数和访问 int count=[secondArray count]; NSLog(@"secondArray all element %ld",count); NSString *string1=[secondArray objectAtIndex:1]; NSLog(@"secondArray of element 1 is %@",string1);
三:在原来的数组对象的基础上面,追加对象返回新的数组
//追加数组的内容 NSArray *array5=[secondArray arrayByAddingObject:@"end"]; NSLog(@"array5 is %@",array5);
四:用指定的字符把数据用字符串形式显示出来
// 数组——>字符串 NSString *string2=[array5 componentsJoinedByString:@","]; NSLog(@"%@",string2);
五:
查询数组中是否包含指定的对象
//判断数组中是否存在指定的对象
Boolean result=[array5 containsObject:@"two"]; if(result){ NSLog(@"存在指定的two"); }else{ NSLog(@"不存在"); }
六:
根据指定的对象返回索引下标
,
返回数组中最后的一个元素
//根据指定的对象返回索引下标,返回数组中最后的一个元素
NSInteger *index=[array5 indexOfObject:@"two"]; NSLog(@"index:%ld",index); NSString *string3 =[array5 lastObject]; NSLog(@"%@",string3);
3
:可变数组的常用方法(
NSMutableArray
)
一:初始化 设定元素个数为5,但可以更改,追加数值对象
// 初始化,指定数组的个数为5,但是可以更改的 NSMutableArray *mutableArrray1=[NSMutableArray array];//空的数组 NSMutableArray *mutableArrray2=[NSMutableArray arrayWithCapacity:5]; NSMutableArray *mutableArrray3=[NSMutableArray arrayWithObjects:@"one",@"two", nil]; NSLog(@"%@",mutableArrray3); [mutableArrray3 addObject:@"three"]; NSLog(@"%@",mutableArrray3);
二:向数组中指定下标插入元素
//向数组中指定下标插入元素 [mutableArrray3 insertObject:@"ccc" atIndex:2]; NSLog(@"%@",mutableArrray3);
三:移除指定元素,移除最后一个元素,移除指定下标的元素
//移除最后一个元素 [mutableArrray3 removeLastObject]; NSLog(@"%@",mutableArrray3); //移除指定元素 [mutableArrray3 removeObject:@"one"]; //移除指定下标的元素 [mutableArrray3 removeObjectAtIndex:0]; NSLog(@"%@",mutableArrray3);
四:向数组中添加数组
//向数种添加数组
NSMutableArray *mutableArray4=[NSMutableArray arrayWithObjects:@"four",@"five", nil]; [mutableArrray3 addObjectsFromArray:mutableArray4]; NSLog(@"%@",mutableArrray3);
五:数组中的对象替换
//数组中的对象替换
[mutableArrray3 replaceObjectAtIndex:1 withObject:@"4"]; NSLog(@"%@",mutableArrray3);
3:数组的遍历
一:常规遍历
NSArray *array6=[NSMutableArray arrayWithObjects:@"x",@"y",@"z", nil];
NSInteger size=[array6 count]; for (NSInteger i=0;i<size; i++) { NSString *str=[array6 objectAtIndex:i]; NSLog(@"%@",str); }
二:高效遍历
//高效遍历
for (NSString *str in array6) { NSLog(@"%@",str); }