iOS-NSMutableArray用法大全详细说明

热门标签

,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

// NSArray 数组一旦创建,里面的元素就不能再改变了。
// NSMutableArray 可变数组,可以改变,增删改
// NSMutableArray,也是继承与NSArray的,因此,NSArray的方法,NSMutableArray都可以用!
// @interface NSMutableArray : NSArray
+ (void)NSMutableArrayCreateMethod
{
    // 这是不允许的,子类指针无法指向父类的对象
    // NSMutableString *str = @"Hello world";
    // NSMutableArray *arr = @[@"one", @"two"];
    NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one", @"two", nil];
    NSLog(@"array = %@",array);
    // 注意,我们常用这个方法,将不可变字符数组,转换为可变字符数组。(实际上是创建了一个新的可变数组,数组里的内容,同array一样而已)
    NSMutableArray *array1 = [NSMutableArray arrayWithArray:array];
    NSLog(@"array1 = %@",array1);
    
    // 创建一个空的可变数组。(init这个方法是NSArray的方法,但是我们很少用,因为,我们没必要创建一个元素为空得不可变数组)
    NSMutableArray *array2 = [[NSMutableArray alloc] init];
    NSLog(@"%lu",[array2 count]);
    // 对应的加方法 (创建一个空的可变数组)
    NSMutableArray *array3 = [NSMutableArray array];
    NSLog(@"%lu",[array3 count]);
 
    // 除了NSArray里的方法,我们还有NSMutableArray自有的初始化/创建方法。
    // 预设一个数组元素个数为10的空的可变数组。
    // 同字符串一样,虽然我们预设了一个长度,但是可以轻松突破这个预设长度,而没有任何压力。
    NSMutableArray *array4 = [[NSMutableArray alloc] initWithCapacity:10];
    NSLog(@"%lu",[array4 count]);
    // 对应加方法
    NSMutableArray *array5 = [NSMutableArray arrayWithCapacity:10];
    NSLog(@"%lu",[array5 count]);
}
 
// 对于可变数组来说,就是增加,删除,修改,重设
+ (void)NSMutableArraySimpleMethod
{
    NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
    NSLog(@"array = %@",array);
    // 在数组所有元素的最后追加一个元素
    [array addObject:@"one"];
    [array addObject:@"two"];
    [array addObject:@"three"];
    NSLog(@"array = %@",array);
    
    // 将subArray数组里的元素,追缴到array数组的所有元素的最后
    NSArray *subArray = @[@"four", @"two", @"six"];
    [array addObjectsFromArray:subArray];
    NSLog(@"array = %@",array);
    // 要注意和addObject:subArray 区别
    // 将subArray做一个元素,追加到array数组所有元素后面
    [array addObject:subArray];
    NSLog(@"array = %@",array);
 
    // 插入
    // 将一个元素,插入到数组的索引位置
    // 头插
    [array insertObject:@"two" atIndex:0];
    NSLog(@"array = %@",array);
    // 中间插入
    [array insertObject:@"two" atIndex:4];
    NSLog(@"array = %@",array);
    // 尾部插入,但是不能太过分。
    [array insertObject:@"two" atIndex:[array count]];
    NSLog(@"array = %@",array);
 
    // 删除
    // 删除数组里,所有相同的对象。
    [array removeObject:@"two"];
    NSLog(@"array = %@",array);
    // 删除数组里,指定索引的元素。
    [array removeObjectAtIndex:3];
    NSLog(@"array = %@",array);
    // 删除数组里最后一个元素
    [array removeLastObject];
    NSLog(@"array = %@",array);
    // 删除数组里所有的元素
    [array removeAllObjects];
    NSLog(@"array = %@",array);
 
    // 重设
    // 用subArray数组里的元素,重新设置array的元素。
    [array setArray:subArray];
    NSLog(@"array = %@",array);
    
    // 修改
    // 将数组索引为1的替换成@"one"这个对象
    [array replaceObjectAtIndex:1 withObject:@"one"];
    NSLog(@"array = %@",array);
 
    // 交换
    // 将数组索引为0和2的两个对象交换位置
    // 用这个方法,进行数组的冒泡/选择排序
    [array exchangeObjectAtIndex:0 withObjectAtIndex:2];
    NSLog(@"array = %@",array);
}
 
+ (void)NSMutableArraySort
{
    NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one", @"two", @"three", @"four", @"five", @"six", nil];
    for (int i=0; i<[array count]-1; i++) {
        for (int j=0; j<[array count]-i-1; j++) {
            NSString *sj = [array objectAtIndex:j];
            NSString *sj1 = [array objectAtIndex:j+1];
            if ([sj compare:sj1] == NSOrderedAscending) {
                [array exchangeObjectAtIndex:j withObjectAtIndex:j+1];
            }
        }
    }
    for (NSString *str in array) {
        NSLog(@"%@",str);
    }
}
 
+ (void)NSMutableArrayRemove
{
    NSString *str = @"  Don't  trouble  trouble, or trouble  trouble you!";
    NSCharacterSet *cs = [NSCharacterSet characterSetWithCharactersInString:@" ,!"];
    NSArray *array = [str componentsSeparatedByCharactersInSet:cs];
    NSMutableArray *newArray = [NSMutableArray arrayWithArray:array];
    [newArray removeObject:@""];
    NSLog(@"newArray = %@",newArray);
}

 

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS-NSMutableArray用法大全详细说明》 发布于2019-10-31

分享到:
赞(0) 打赏

评论 抢沙发

2 + 9 =


iOS-NSMutableArray用法大全详细说明

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?