Objective-C语言——NSMutableArray可变数组




#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
      
        
        //可变数组NSMutableArray,它是NSArray的子类
        //初始化方法
        //初始化一个空的可变数组
        NSMutableArray *mArray1 = [NSMutableArray array];
        
        //创建一个里面只有一个元素的可变数组
        NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
        
        //创建一个里面多个元素的可变数组
        NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
        
        //根据另一个数组产生新的数组
        NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray3];
        
        //可变数组独有的初始化方法
        NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
        //数组的容量也只是数组最终大小的一个参考,容量数组之所以存在,是为了cocoa 能够对代码进行一些优化,cocoa即不会将对象预写入数组,也不会用该容量来限制数组的大小。
        
        //从本地读取数组
        NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
        
        //从网络读取数组
        NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
        
        //增加
        //在数组的末尾增加一个元素
        [mArray3 addObject:@"5"];
        
        //在数组指定位置插入一个元素
        [mArray3 insertObject:@"Rick" atIndex:2];
        
        //替换  将数组指定位置上的元素替换成用户想要的元素
        [mArray3 replaceObjectAtIndex:2 withObject:@"Rick"];
        
        //交换  将数组指定位置上的两个元素交换位置
        [mArray3 exchangeObjectAtIndex:0 withObjectAtIndex:1];
        
        //删除
        //删除指定元素
        [mArray3 removeObject:@"1"];
        
        //删除指定位置上的元素
        [mArray3 removeObjectAtIndex:0];
        
        //删除数组中最后一个元素
        [mArray3 removeLastObject];
        
        //删除数组所有元素
        [mArray3 removeAllObjects];
        
        
        
        for (int i=0; i<mArray3.count; i++) {
            NSLog(@"mArray3[%d]=%@",i,mArray3[i]);
        }
        
        
        
        //数组的遍历
        NSMutableArray *marray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
        
        //快速枚举
        for (NSString *element in marray) {
            NSLog(@"element = %@",element);
        }
        
        //使用系统提供的枚举类型
        NSEnumerator *enumerator = [marray objectEnumerator];
        //得到一个枚举器以后我们就可以通过while循环来遍历数组元素,而不用管索引问题,每次循环可以通过枚举的nextObject方法得到下一个数组里的对象。直到到nextObject为nil时,循环结束,这也是为什么数组元素中不要出现nil的原因
        
       
        id ele;
        while (ele=[enumerator nextObject]) {  //使用枚举器遍历集合
            NSLog(@"ele=%@",ele);
        }
        
        /*
         注意:
         我们使用枚举器遍历数组元素期间,不要添加或者删除数组元素,否则运行的时候程序会崩溃
         因为通过objectEnumerator 的枚举器的时候数组元素的个数已经记录在枚举器里了,在遍历的时候,如果添加或删除数组元素的话,数组元素的个数就前后不一致而出现异常。
         */
        
        
        
        
        
    }
    return 0;
}


运行结果


2015-12-15 13:20:52.443 OC_05_02[2688:62152] element = 1

2015-12-15 13:20:52.444 OC_05_02[2688:62152] element = 2

2015-12-15 13:20:52.444 OC_05_02[2688:62152] element = 3

2015-12-15 13:20:52.445 OC_05_02[2688:62152] element = 4

2015-12-15 13:20:52.445 OC_05_02[2688:62152] element = 5

2015-12-15 13:20:52.446 OC_05_02[2688:62152] ele=1

2015-12-15 13:20:52.446 OC_05_02[2688:62152] ele=2

2015-12-15 13:20:52.446 OC_05_02[2688:62152] ele=3

2015-12-15 13:20:52.446 OC_05_02[2688:62152] ele=4

2015-12-15 13:20:52.447 OC_05_02[2688:62152] ele=5

Program ended with exit code: 0



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值