1. 程式人生 > >Snail—OC學習之可變陣列NSMutableArray

Snail—OC學習之可變陣列NSMutableArray

可變陣列NSMutableArray 繼承於 NSArray  NSArray的所有方法都適用於可變陣列

下面是可變陣列的一些初始化方法

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        //可變陣列繼承於不可變陣列
        //空的可變陣列
        NSMutableArray * array = [[NSMutableArray alloc] init];
        //傳入0 就是新建了一個空陣列
        NSMutableArray * array2 = [[NSMutableArray alloc] initWithCapacity:0];
        //以一個數組來建立新的陣列
        NSMutableArray * array3 = [[NSMutableArray alloc] initWithArray:array];
        
        //初始化新增物件 nil是佔位的
        NSMutableArray * array4 = [[NSMutableArray alloc] initWithObjects:@"dsa",@"sd",nil];
        
        //簡易初始化方法只適用於不可變陣列
        //NSMutableArray * array5 = @[@"dsa",@"sd"];
        
        //類方法形式建立陣列
        NSMutableArray * arr1 = [NSMutableArray array];
        NSMutableArray * arr2 = [NSMutableArray arrayWithArray:array];
        //一個長度為0的可變陣列
        NSMutableArray * arr3 = [NSMutableArray arrayWithCapacity:0];
        NSMutableArray * arr4 = [NSMutableArray arrayWithObjects:@"sda",@"asd",nil];
        
    }
    return 0;
}

跟可變陣列相似的原理,可變陣列可以對其裡面的元素進行相應的方法
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        NSMutableArray * array = [[NSMutableArray alloc] init];
        
        //增加一個元素
        [array addObject:@"one1"];
        NSArray * array2 = @[@"sda",@"sad",@"one"];
        //新增多個元素
        [array addObjectsFromArray:array2];
        
        //刪除所有跟引數相同的物件
        [array removeObject:@"one"];
        //刪除指定位置的元素
        [array removeObjectAtIndex:0];
        //刪除所有元素
        //如果是空陣列 呼叫下面這個方法資料會報錯
        [array removeAllObjects];
        
        //刪除最後一個元素,但是空陣列不會報錯
        [array removeLastObject];
        //刪除多個元素
        [array removeObjectsInArray:array2];
        
        //從下標開始,刪除幾個元素  從下標0開始刪除 要刪除兩個
        NSRange range = NSMakeRange(0, 2);
        [array removeObjectsInRange:range];
        
    }
    return 0;
}

可變陣列的一些關於元素的方法
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        NSMutableArray * array = [[NSMutableArray alloc] init];
       
        //重置陣列 引數可以是任何陣列
        [array setArray:@[@"Snail",@"Daodao",@"Jian"]];
        
        //替換 將下標為1的元素替換成@"jianjian"
        [array replaceObjectAtIndex:1 withObject:@"Jian"];
        
        //交換 將下標為1的元素 跟下標為2的元素交換
        [array exchangeObjectAtIndex:1 withObjectAtIndex:2];
        
        //插入 下標2將會新插入一個元素 其他元素順序往後移動
        [array insertObject:@"j" atIndex:2];
        
    }
    return 0;
}