【1】数组的创建
数组是不能添加元素的,只能在创建的同时赋值。
1.创建数组
//静态方法不需要管理内存 NSArray *array= [NSArray array]; //这样创建是没有数组的,是创建空的数组 array= [NSArray arrayWithObject:@"123"];//创建一个有1个元素的数组。 array= [NSArray arrayWithObjects:@"1",@"2",@"3", nil];//这里是创建一个有多个元素的数组 //nil在这里表示是一个结束符类似于/0.
2.查询数组内元素个数
//查询元素个数 int count=[array count];//用来计算数组内部有多少个元素 //同上面等价 int count =array.count; NSLog(@"%i",count); //输出
3.数组中既可以放元素,也可以放数组
//或者有一种方式就是arrary1中既可以放元素,也可以放数组 NSObject *obj=[[NSObject alloc] init]; NSArray *array1=[NSArray arrayWithObjects:@"a",@"b",@"c",obj, nil]; NSLog(@"%@",array1);
【2】数组的查询
1.是否包含某元素
//判断字符数组中是否包含某元素 NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; if([array containsObject:@"1"]){ NSLog(@"包含了字符"); }else { NSLog(@"不包含该字符"); }
2.判断数组内最后一个元素是什么
//判断最后一个元素是什么 NSString *last=[array lastObject]; NSLog(@"last=%@",last);
3.通过索引查询该索引值对应的元素
//根据某个索引值然后找到该位置的元素是什么 NSString *str=[array objectAtIndex:1]; NSLog(@"%@",str);
4.通过元素查询索引值(如果是负数,那么就是查找不倒。)
//根据某个元素,查找到该元素的索引位置 //如果是负数,那么就是查找不倒。 int index=[array indexOfObject:@"2"]; NSLog(@"index=%i",index);
【3】数组的比较
1.比较两个集合内容是否相同
//比较两个集合内容是否相同 -(BOOL)isEqualToArray:(NSArray *)otherArray
2.返回第一个相同的对象元素
//返回两个集合中第一个相同的对象元素 -(id)firstObjectCommonWithArray:(NSArray *)otherArray
【4】数组的遍历
1.for循环进行遍历
void arrayFor(){ NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; int count =array.count; for(int i=0;i<count;i++) { id obj=[array objectAtIndex:i]; NSLog(@"%i-%@",i,obj); } }
2.快速遍历方法
void arrayFor2(){ NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; int i=0; for(id obj in array){ NSLog(@"%i-%@",i,obj); i++; } }
3.快速遍历方法
enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
如图打入这种方法的时候将^(id obj, NSUInteger idx, BOOL *stop)这一句进行双击展开
展开成为:
例子如下:
void arrayFor3(){ NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil]; [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { //每遍历一个元素都会调用一次block //利用指针修改外面bool变量值 if(idx==1){ *stop=YES;//传入一个stop指针让内部能进行修改 } NSLog(@"%i-%@",idx,obj); }]; }
4.使用迭代器进行遍历
NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; NSEnumerator *enumerator=[array objectEnumerator];//获取数组的迭代器
5.反序迭代器,从尾部开始遍历
NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
//反序迭代器,从尾部开始进行遍历
NSEnumerator *enumerator=[array reverseObjectEnumerator];
6.取得下一个需要遍历的元素
[enumerator nextObject];//取得下一个需要遍历的元素 id obj=nil; while (obj=[enumerator nextObject]) { NSLog(@"obj=%@",obj); }
7.返回迭代器中的所有元素
//返回迭代器中的所有元素 NSArray *array2=[enumerator allObjects]; NSLog(@"array2:%@",array2);