#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];
//可变数组独有的初始化方法(数组的容量也只是数组最终大小的一个参考,容量数值之所以存在,是为了cocoa能够对代码进行一些优化,cocoa即不会将对象预写入数组,也不会用该容量来限制数组的大小)
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
//从本地读取数组
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@"地址"];
//从网络读取数组
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@"网址"]];
//可变数组的操作
//在数组的末尾增加一个元素
[mArray3 addObject:@"5"];
//在数组指定位置插入一个元素
[mArray3 insertObject:@"Yong" atIndex:2];
//替换,将数组指定位置上的元素替换成用户想要的元素
[mArray3 replaceObjectAtIndex:2 withObject:@"Chen"];
//交换,将数组指定位置上的两个元素交换位置
[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[i]);
}
//数组的遍历
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//快速枚举
for (NSString *element in mArray)
{
NSLog(@"%@",element);
}
//使用系统提供的枚举类型
NSEnumerator *enumerator = [mArray objectEnumerator];
//得到一个枚举器以后我们就可以通过while循环来遍历数组元素,而不用管索引问题,每次循环可以通过枚举器的nextObject方法得到下一个数组里的对象,直到到nextObject为nil时,循环结束,这也是为什么数组元素中不要出现nil的原因
id ele;
while (ele = [enumerator nextObject])//使用枚举器遍历集合
{
NSLog(@"%@",ele);
}
/*
注意:
我们使用枚举器遍历数组元素期间,不要添加或者删除数组元素,否则允许的时候程序会崩溃,因为通过objectEnumerator的枚举器的时候数组元素的个数已经记录在枚举器里了,在遍历的时候,如果添加或者删除数组元素的话,数组元素的个数就前后不一致而出现异常
*/
}
return 0;
}
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];
//可变数组独有的初始化方法(数组的容量也只是数组最终大小的一个参考,容量数值之所以存在,是为了cocoa能够对代码进行一些优化,cocoa即不会将对象预写入数组,也不会用该容量来限制数组的大小)
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
//从本地读取数组
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@"地址"];
//从网络读取数组
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@"网址"]];
//可变数组的操作
//在数组的末尾增加一个元素
[mArray3 addObject:@"5"];
//在数组指定位置插入一个元素
[mArray3 insertObject:@"Yong" atIndex:2];
//替换,将数组指定位置上的元素替换成用户想要的元素
[mArray3 replaceObjectAtIndex:2 withObject:@"Chen"];
//交换,将数组指定位置上的两个元素交换位置
[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[i]);
}
//数组的遍历
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//快速枚举
for (NSString *element in mArray)
{
NSLog(@"%@",element);
}
//使用系统提供的枚举类型
NSEnumerator *enumerator = [mArray objectEnumerator];
//得到一个枚举器以后我们就可以通过while循环来遍历数组元素,而不用管索引问题,每次循环可以通过枚举器的nextObject方法得到下一个数组里的对象,直到到nextObject为nil时,循环结束,这也是为什么数组元素中不要出现nil的原因
id ele;
while (ele = [enumerator nextObject])//使用枚举器遍历集合
{
NSLog(@"%@",ele);
}
/*
注意:
我们使用枚举器遍历数组元素期间,不要添加或者删除数组元素,否则允许的时候程序会崩溃,因为通过objectEnumerator的枚举器的时候数组元素的个数已经记录在枚举器里了,在遍历的时候,如果添加或者删除数组元素的话,数组元素的个数就前后不一致而出现异常
*/
}
return 0;
}