OC可变数组的常用操作
2019-01-10 17:56
10 查看
版权声明:俊而不逊原创文章,转载请注明出处 https://blog.csdn.net/zjpjay/article/details/86245056
可变数组
- 可变数组的初始化
可变数组,继承于不变数组NSArry; 不可变数组的方法都可以用于可变数组 创建一个空的可变数组 NSMutableArray *arr = [[NSMutableArray alloc]init]; //给一个初始化容量 NSMutableArray *arr1 = [[NSMutableArray alloc]initWithCapacity:10]; //类方法 NSMutableArray *arr2 = [NSMutableArray array];
NSArray *arr = @[@“zjp”,@“ww”,@“jjj”,@“ww”,@“ahk”];
NSMutableArray *arr1 = [[NSMutableArray alloc]init];
NSMutableArray *arr2 = [NSMutableArray array];//类方法
- 可变数组添加元素
//增加一个对象 [arr1 addObject:@"jay"]; //从数组里增加对象元素 [arr1 addObjectsFromArray:arr]; NSLog(@"arr1= %@",arr1); //插入 //插入元素 在指定的下标位置 [arr1 insertObject:@"hello" atIndex:0];
- 可变数组删除元素
//删除 指定下标的元素 [arr1 removeObjectAtIndex:0]; NSLog(@"arr1= %@",arr1); //删除最后 一个元素 [arr1 removeLastObject]; NSLog(@"arr1= %@",arr1); //删除指定元素 如果你数组里有多个相同的元素,也会一起删除 [arr1 removeObject:@"ww"]; NSLog(@"arr1= %@",arr1); //删除指定范围的 元素 NSRange range = {0,2}; [arr1 removeObject:@"zjp" inRange:range]; NSLog(@"arr1= %@",arr1); //删除指定范围里的 所有元素 [arr1 removeObjectsInRange:range]; NSLog(@"arr1= %@",arr1); //删除指定数组的所有元素 [arr1 removeObjectsInArray:@[@"zjp"]]; NSLog(@"arr1= %@",arr1); //删除指定下标集合的元素 //下标集合类 NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc]init]; [indexSet addIndex:0];//把下标0放进集合里 [indexSet addIndex:1];//把下标2放进集合里 [arr1 removeObjectsAtIndexes:indexSet]; NSLog(@"arr1= %@",arr1); //删除数组的所有元素 [arr1 removeAllObjects]; NSLog(@"arr1= %@",arr1);
- 可变数组中元素的交换
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",nil] //交换元素 //交换指定下标的数组元素 NSLog(@"array= %@",array); [array exchangeObjectAtIndex:0 withObjectAtIndex:4]; NSLog(@"array= %@",array); //替换指定下标的元素 [array replaceObjectAtIndex:4 withObject:@"6"]; NSLog(@"array= %@",array);
小练习
可变数组练习 冒泡排序
NSMutableArray *arrM = [NSMutableArray arrayWithObjects:@"1",@"2",@"5",@"4",@"8",@"10",@"7",@"3",@"6",@"9", nil]; NSInteger j=0; for (NSInteger i = 0; i<[arrM count]; i++) { for (j=0;j<=i-1 ; j++) { if ([arrM[i] integerValue]>[arrM[j] integerValue]) { [arrM exchangeObjectAtIndex:i withObjectAtIndex:j]; } } } NSLog(@"arrM= %@",arrM); }
1.创建一个可变数组,数组中包含若干不相同的字符串,要求将指定的字符串删除
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1",@"4",@"s",@"6", nil]; [arr removeObject:@"s"]; NSLog(@"arr= %@",arr);
2.创建一个可变数组,数组中包含若干不相同的字符串,要求将 下标整除3 的元素全部删除
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11", nil]; NSMutableIndexSet *index = [[NSMutableIndexSet alloc]init]; for (NSInteger i=0; i<[array count]; i++) { if (i%3==0) { [index addIndex:i]; } } [array removeObjectsAtIndexes:index]; NSLog(@"arry= %@",array);
需要注意 上面的代码,如果在for循环里面删除是不正确的,因为下标在一直变化的
相关文章推荐
- oc中可变数组和可变字符串相关操作
- OC之对不可变字符串、可变字符串、可变数组的操作及OC中字符串的排序
- oc中可变数组,可变字符串相关操作
- OC视频笔记3.10(可变数组的常用方法)3.12,3.13练习(略)(OC里description就是java里toString)
- OC 可变数组的常用方法NSMutableArray
- OC-数组常用操作(NSArray、NSMutableArray)
- OC 不可变数组的常用方法NSArray
- 20150611_OC之数组NSArray中函数操作
- (34)数组的相关处理函数(上)(35)常用的数组相关操作函数(下)
- 数组toString()方法,数组常用操作
- 常用的Java数组操作
- JavaScript 数组常用操作
- JAVA基础(23)---数组的常用操作
- OC-字符串常用操作(NSString、NSMutableString)
- PHP:常用PHP数组操作函数
- 可变数组的不可变操作
- Javascript基础(六):数组及常用操作
- 【OC学习-18】NSArray的初始化以及常用数组操作方法简单归纳
- OC学习之深入c ——OC参数数目可变的变元操作
- 在数组操作中常用的排序(降序/升序)方法(算法)及排序效率比较