OC可变数组的常用操作

可变数组

  1. 可变数组的初始化
可变数组,继承于不变数组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];//类方法

  1. 可变数组添加元素
//增加一个对象
 [arr1 addObject:@"jay"];
 
 //从数组里增加对象元素
  [arr1 addObjectsFromArray:arr];
  NSLog(@"arr1= %@",arr1);
    
 //插入
 //插入元素 在指定的下标位置
  [arr1 insertObject:@"hello" atIndex:0];
  1. 可变数组删除元素
        //删除 指定下标的元素
        [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);
  1. 可变数组中元素的交换
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循环里面删除是不正确的,因为下标在一直变化的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西Sensei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值