OC-044.可变数组NSMutableArray

1.可变数组创建

        //1.1通过类方法 aray的方法创建
        NSMutableArray *array1 = [NSMutableArray array];
        //1.2可变数组不能通过字面量直接创建
//        NSMutableArray *array1 = @[@1,@2,@3];
        //1.2.1可以通过点语法 setter的方法赋值
        array1.array = @[@1,@2,@3];
        //1.3通过类方法,开辟能够存储10个元素的数组
        NSMutableArray *array2 = [NSMutableArray arrayWithCapacity:10];
        NSLog(@"%zd",sizeof(array2));//占8个字节
        NSLog(@"%@",array1);//打印1,2,3

2.给可变数组添加元素

        [array1 addObject:@100];
        NSLog(@"%@",array1);//打印1,2,3,100

3.在索引位置插入一个元素对象,最大插入位置为数组的个数,超过就报错

        [array1 insertObject:@99 atIndex:array1.count];
        NSLog(@"%@",array1);//打印1,2,3,100,99

4.删除数组内的对象元素

//******4.1删除某个元素对象,是通过调用isEqual方法进行比较的 如果有很多相同的就一起删除
        [array1 removeObject:@99];
        NSLog(@"%@",array1);//打印1,2,3,100
        [array1 removeObjectAtIndex:1];//删除索引的元素
         NSLog(@"%@",array1);//打印1,3,100
//******4.2在遍历的同时,删除某个元素对象在遍历的同时,删除某个元素对象
        //4.2.1通过for方法
        NSMutableArray *arr = [NSMutableArray array];
        arr.array = @[@1,@2,@2,@2,@2,@5,@2];
        for (int i = 0; i < arr.count; i++) {
            if ([arr[i] isEqualToNumber:@2]) {
                [arr removeObjectAtIndex:i];
                NSLog(@"%zd",arr.count);
                i--;//不要忘记加
            }
        }
        NSLog(@"%@",arr);
      
        //4.2.2通过增强for
        //不能使用for增强的方式遍历的同时删除,所有通过枚举器的方式都不可以遍历的同时删除
        NSMutableArray *arr2 = [NSMutableArray array];
        arr2.array = @[@1,@2,@2,@2,@2,@5,@2];
        //通过创建一个空数组,在遍历同时赋值给它,最后删除
        NSMutableArray *arrM =[NSMutableArray array];
        for (NSNumber *num in arr2) {
            if ([num isEqual:@2]) {
                [arrM addObject:num];
                NSLog(@"%@",arrM);
            }
        }
        //然后删除数组内的元素
        [arr2 removeObjectsInArray:arrM];
        NSLog(@"%@",arr2);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值