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);