oc 笔记--NSArray NSMutableArray 创建 添加 查询 复制 遍历等
NSArray说明
-oc中枚举就是遍历的意思,区别c语言中的枚举
-Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合
-数组只能存储对象(类的实例)
NSArray使用
-通过下标获取到数组中的各个元素
-与字符串相同,数组分为可变和不可变数组
NSArray注意
-数组中不可以存放基本数据类型,只能存放类的实例(对象)
-如若需要将基本数据类型/结构体放入数组中,需要通过NSNumber NSValue进行“封装”
NSArray实例
创建不可变数组
1 // 创建不可变数组 2 //快速创建数组 3 NSArray *arr=@[@"mon",@"tue",@"wed"]; 4 //创建空数组 5 NSArray *array=[[NSArray alloc]init]; 6 NSArray *array1=[NSArray array]; 7 /*使用实例方法创建数组 注意数组结尾必须有nil(空)进行结束 不可删除*/ 8 NSArray *arr1=[[NSArray alloc]initWithObjects:@"123",@"231",@"133", nil]; 9 NSLog(@"%@",arr1); 10 /*使用类方法创建数组*/ 11 NSArray *arr2=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; 12 NSLog(@"%@",arr2);
1 //复制 把一个数组内容复制到另一个数组内 2 NSArray *newArray=[NSArray arrayWithArray:arr1]; 3 NSLog(@"%@",newArray); 4 /*获取数组元素个数*/ 5 NSUInteger count=[arr1 count]; 6 NSLog(@"%ld",count); 7 /*根据索引值获取对象*/ 8 NSString *p=[arr1 objectAtIndex:0]; 9 NSLog(@"%@",p); 10 /*向数组内添加一个元素*/ 11 NSArray *addArr=[newArray arrayByAddingObject:@"zhou"]; 12 NSLog(@"%@",addArr); 13 //使用指定的字符串将数组中元素链接起来 14 NSString *newStr=[newArray componentsJoinedByString:@","]; 15 NSLog(@"%@",newStr); 16 //判定数组内是否包含某个对象 17 BOOL result=[newArray containsObject:@"123"]; 18 NSLog(@"%d",result); 19 //查询某个对象在数组中的位置 20 NSUInteger index=[newArray indexOfObject:@"123"]; 21 NSLog(@"%d",(int)index+1); 22 //获取数组最后一个元素(first第一个元素) 23 NSString *last=[newArray lastObject]; 24 NSLog(@"%@",last);
遍历数组
1 //遍历数组(枚举)对数组内的元素依次不重复的进行遍历 2 //下标遍历(1) 3 for(int i=0;i<[newArray count];i++){ 4 NSString *element=[newArray objectAtIndex:i]; 5 NSLog(@"%@",element); 6 } 7 //(2) 8 for(int i=0;i<[newArray count];i++){ 9 NSLog(@"%@",newArray[i]); 10 } 11 // for in 快速遍历 遍历性高 12 for(NSString *string in newArray){ 13 NSLog(@"%@",string); 14 } 15 //id 可以代表任意类型的数据,当不确定对象类型时使用 16 for(id str in newArray){ 17 NSLog(@"%@",str); 18 }
创建可变数组
1 // 可变数组继承自不可变数组 2 //1.设定元素个数进行创建 首次创建为7个元素的空间,可继续添加 3 NSMutableArray *muarr=[NSMutableArray arrayWithCapacity:7]; 4 //2.向数组内添加元素 5 NSArray *arr2=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; 6 //将不可变数组复制到可变数组内 7 NSMutableArray *muarr1=[NSMutableArray arrayWithArray:arr2]; 8 [muarr1 addObject:@"4"]; 9 for(id str in muarr1){ 10 NSLog(@"%@",str); 11 }
1 //3.根据下标插入元素 2 [muarr1 insertObject:@"5" atIndex:4]; 3 for(id str1 in muarr1){ 4 NSLog(@"%@",str1); 5 } 6 //4.删除最后一个元素 7 [muarr1 removeLastObject]; 8 for(id str2 in muarr1){ 9 NSLog(@"%@",str2); 10 } 11 //5.根据指定下标删除元素 12 [muarr1 removeObjectAtIndex:3]; 13 for(id str3 in muarr1){ 14 NSLog(@"%@",str3); 15 } 16 //6.根据对象删除元素 17 [muarr1 removeObject:@"1"]; 18 for(id str4 in muarr1){ 19 NSLog(@"%@",str4); 20 } 21 //7.替换指定下标的元素 22 [muarr1 replaceObjectAtIndex:0 withObject:@"3"]; 23 for(id str5 in muarr1){ 24 NSLog(@"%@",str5); 25 }