NSArray&& NSMutableArray使用

認識數組

1、C的數組用來存儲基本類型或者是複合類型的數據。OC的數組是專門用來存儲對象的,並且不能用來存儲基本數據類型;OC中C數組和OC協同合作

2、C的數組中存的是相同類型的數據。OC的一個數組可以存儲多種類的對象,OC數組的每個元素實質是存儲一個對象的地址

3、OC的數組分爲可變數組和不可變數組,這裏的可變是指數組大小和數組中每個元素的順序可變


一、數組的初始化(創建)

#pragma mark 不可變數組的創建

//1.使用簡單粗暴的方式創建一個數組

    NSArray * array1 = @[@"MingGe",@"100",person];

//%@可以打印任何類的對象

//使用NSLog打印對象的時候,其實是打印的這個對象的description返回

    NSLog(@"%@",array1);

//=====使用對象方法初始化數組=====

//創建一個空的數組

    NSArray * array2 = [[NSArray alloc] init];

//使用多個對象來初始化一個數組

    NSArray * array3 = [[NSArray alloc] initWithObjects:@"aaa",@"7",person,@"hello",nil];

//使用一個數組初始化另一個數組

    NSArray * array4 = [[NSArray alloc] initWithArray:array1];

//=====使用類方法初始化數組=======

//創建一個空的數組

    NSArray * array5 = [NSArray array];

//使用不同的對象去初始化一個數組

//nil不能刪除

    NSArray * array6 = [NSArray arrayWithObjects:@"yuting",@"111",person, nil];

//使用一個數組去初始化另外一個數組

    NSArray * array7 = [NSArray arrayWithArray:array1];

#pragma mark 可變數組的創建

//===========使用對象方法初始化一個可變數組=======

//創建一個空的可變數組

    NSMutableArray * marray1 = [[NSMutableArray alloc] init];

//使用不同(相同)類的對象初始化一個可變數組

    NSMutableArray * marray2 = [[NSMutableArray alloc] initWithObjects:@"000",@"111",person,@"99", nil];

//使用一個數組去初始化一個可變數組

//將一個不可變數組轉化成爲一個可變數組

    NSArray * array = @[@"xixi",@"haha",@"hehe"];

    NSMutableArray * marray3 = [[NSMutableArray alloc] initWithArray:array];


二、數組常用方法

通用方法:

1.以一個子串分割返回一個數組

- (NSArray *)componentsSeparatedByString:(NSString *)separator;

2.以字符集分割返回數組character

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator;

3.用數組拼接成字符串

- (NSString *)componentsJoinedByString:(NSString *)separator;

#pragma mark 可變數組專有方法

#pragma mark 增加數組元素

//- (void)addObject:(id)anObject;

    NSMutableArray * marray4 = [NSMutableArray array];

//添加一個數組元素

    [marray4 addObject:@"aaa"];

//將一個數組的每個元素分別添加到可變數組

    [marray4 addObjectsFromArray:array];

//- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;

//在指定位置(下標)儲插入一個對象

    [marray4 insertObject:@"111" atIndex:2];

    NSLog(@"%@",marray4);

#pragma mark 刪除數組元素

//- (void)removeObject:(id)anObject;

//刪除指定對象

    [marray4 removeObject:@"aaa"];


    id object_3 = [marray4 objectAtIndex:3];

    [marray4 removeObject:object_3];

//- (void)removeObjectAtIndex:(NSUInteger)index;

//刪除指定下標的數組元素

    [marray4 removeObjectAtIndex:2];

    NSLog(@"%@",marray4);

//- (void)removeAllObjects;

//刪除數組的所有元素

    [marray4 removeAllObjects];

#pragma mark 數組的最後一個元素(不可變數組也可以用)

//獲取數組最後一個元素

    [marray4 addObject:person];

    id lastObject = [marray4 lastObject];

    NSLog(@"%@",lastObject);

#pragma mark isKindOfClass

//isKindOfClasss:是用來判斷一個對象是否是某一個類的對象

//判斷lastObject是不是NSString的對象

    if ([lastObject isKindOfClass:[NSString class]]) {

        NSLog(@"字符串:%@",lastObject);

    }

    if ([lastObject isKindOfClass:[YTPerson class]]) {

        NSLog(@":%@",lastObject);

    }

#pragma mark 數組元素替換

//替換指定下標元素

//- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

    [marray4 replaceObjectAtIndex:0 withObject:@"000"];

#pragma mark 交換兩個數組元素

//- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;

//交換兩個指定下標的數組元素

    [marray4 exchangeObjectAtIndex:1 withObjectAtIndex:5];

    NSLog(@"%@",marray4);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章