OC中的可变数组

       可变数组NSMutableArray,他是NSArray的子类

        

        一.初始化方法

        1.初始化一个空的可变数组

        NSMutableArray *mArray1 = [NSMutableArray array];

        2.创建一个里面只有一个元素的可变数组

        NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];

        3.创建一个里面有多个元素的可变数组

        NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];

        4.根据另一个数组产生新的数组

        NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray3];

        5.可变数组独有的初始化方法

        NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];

        注意:数组的容量也只是数组最终大小的一个参考,容量数值count之所以存在,count是为了能够对代码进行一些优化,既不会将对象预写入数组,也不会限制该容量的大小。

        6.从本地读取数组

        NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];

        7.从网络读取数组

        NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];

        

        二.操作可变数组

        1.在数组的末尾增加一个元素

        [mArray3 addObject:@"5"];

        

        2.在数组指定位置插入一个元素

        [mArray3 insertObject:@"Rick" atIndex:2];

        

        3.将数组指定位置上的元素替换成用户想要的元素

        [mArray3 replaceObjectAtIndex:2 withObject:@"Jack"];

        

        4.将数组指定位置上的2个元素交换位置

        [mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:4];

        

        5.删除指定元素

        [mArray3 removeObject:@"Jack"];

        

        6.删除指定位置上的元素

        [mArray3 removeObjectAtIndex:1];

        

        7.删除数组中最后一个元素

        [mArray3 removeLastObject];

        

        8.删除数组所有元素

        [mArray3 removeAllObjects];

        

        for (int i = 0; icount; i++) {

            NSLog(@"%@",mArray3[i]);

        }

        

        9.数组的遍历

        NSMutableArray *marray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

        10.快速枚举

        for (NSString *element in marray) {

            NSLog(@"%@",element);

        }

        11.使用系统提供的枚举类型

        NSEnumerator *enumerator = [marray objectEnumerator];

        注意:得到一个枚举器以后我们就可以通过while循环来遍历数组元素,二步用管索引问题,每次循环可以通过枚举器的nextObject方法得到下一个数组里的对象,直到nextObjectnil时,循环结束,这也是为什么数组中不要出现你咯的原因。

        id ele;

        while (ele = [enumerator nextObject]) {

            NSLog(@"%@",ele);

        }

        /*

         注意:

         我们使用枚举器遍历数组元素期间,不要添加或者删除数组元素,否则运行的时候程序会崩溃,因为通过objectEnumerator的枚举器的时候数组元素的个数已经记录在枚举器里面了,在遍历的时候,如果添加或者删除数组元素的话,数组元素的个数就前后不一致而出现程序异常

         */


你可能感兴趣的:(OC中的可变数组)