//1 创建指定容量大小的可变数组对象 开始时候申请的内存大小 可以根据以后情况进行扩展
NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:20];
//2 添加数组元素
[array addObject:@"one"];
NSLog(@"array = %@",array);
//3 在指定下标处 插入元素
[array insertObject:@"two" atIndex:1];
NSLog(@"array =%@",array);
//4 添加传入数组的所有元素到数组中
[array addObjectsFromArray:array];
NSLog(@"array = %@",array);
//5 删除最后一个元素
[array removeLastObject];
NSLog(@"array = %@",array);
//6 删除指定位置
[array removeObjectAtIndex:0];
NSLog(@"array = %@",array);
NSMutableArray * array1 = [NSMutableArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"one", nil];
//7 删除数组中所有出现的目标元素
[array1 removeObject:@"one"];
NSLog(@"array1 = %@",array1);
// 8 删除某个范围内 目标元素
[array1 removeObject:@"one" inRange:NSMakeRange(4, 2)];
NSLog(@"array1 = %@",array1);
//9 删除数组中某个范围
[array1 removeObjectsInRange:NSMakeRange(0, 3)];
NSLog(@"array1 = %@",array1);
//10 删除 传入输出数组在数组中的元素
[array1 removeObjectsInArray:array];
NSLog(@"array1 = %@",array1);
//11 删除所有元素
[array1 removeAllObjects];
NSLog(@"array1 = %@",array1);
//12 修改或重置数组
[array setArray:array];
NSLog(@"array = %@",array);
//13 交换指定位置的元素
[array1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"array1 = %@",array1);
//一个数组替换一个范围
[array1 replaceObjectsInRange:NSMakeRange(1, 2) withObjectsFromArray:@[@"ni",@"hao"]];
NSLog(@"array1 = %@",array1);
//使用传入元素 替换某个下标的元素
[array1 replaceObjectAtIndex:1 withObject:@"one"];
NSLog(@"array1 = %@",array1);
//下标集合
NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSetWithIndex:1];
[indexSet addIndex:3];
[indexSet addIndex:5];
[array1 insertObjects:@[@"1",@"3",@"5"] atIndexes:indexSet];
NSLog(@"array1 = %@",array1);
[array1 removeObjectsAtIndexes:indexSet];
NSLog(@"array1 = %@",array1);
注意:可变数组在for - in循环是不可以改变器内部元素,如果要改变,用枚举器
//将sectionTitles中数字字符串换成汉字字符串,按顺序
NSDictionary *regionDicts = @{@"19764":@"美洲",@"20954":@"韩日",@"20691":@"香港",@"21062":@"台湾",@"19774":@"中国",@"20681":@"欧洲"};
NSMutableArray* sectionTitles = [NSMutableArray arrayWithObjects:@"20954",@"19764",@"20681",@"20691",@"21062",@"19774", nil];
NSArray *regionAllKey = [regionDicts allKeys];
for (NSString *regionKey in regionAllKey) {
[sectionTitles enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isEqualToString:regionKey]) {
*stop = YES;
if (*stop) {
[sectionTitles replaceObjectAtIndex:idx withObject:[regionDicts objectForKey:regionKey]];
}
}
}
NSLog(@"调换后的sectionTitles = %@",sectionTitles);