iOS 數(shù)組(可變數(shù)組、不可變數(shù)組、數(shù)組倒序、數(shù)組中添加元素、數(shù)組元素替換、數(shù)組移除某個元素等)

閑話少說,先上Demo

Github地址:https://github.com/Jerryisme/ArrayUsage

NSArray官方API文檔

NSMutableArray官方API文檔

常用方法

不可變數(shù)組

- (void)setUpNSArray {
    // 創(chuàng)建空數(shù)組(基本沒用過)
    NSArray *arr0 = [[NSArray alloc] init];
    NSLog(@"創(chuàng)建空數(shù)組---    %@\n", arr0);
    
    // 類方法創(chuàng)建空數(shù)組(常用)
    NSArray *arr1 = [NSArray array];
    NSLog(@"類方法創(chuàng)建空數(shù)組---    %@\n", arr1);
    
    // 對象方法創(chuàng)建數(shù)組,以nil結束
    NSArray *arr2 = [[NSArray alloc] initWithObjects:@"I", @"Love", @"U", nil];
    NSLog(@"對象方法創(chuàng)建數(shù)組,以nil結束---    %@\n", arr2);
    
    // 用已有數(shù)組創(chuàng)建新數(shù)組
    NSArray *arr3 = [[NSArray alloc] initWithArray:arr2];
    NSLog(@"用已有數(shù)組創(chuàng)建新數(shù)組---    %@\n", arr3);
    
    // 通過類方法創(chuàng)建數(shù)組
    NSArray *arr4 = [NSArray arrayWithArray:arr3];
    NSLog(@"通過類方法創(chuàng)建數(shù)組---    %@\n", arr4);
    
    // 數(shù)組中有多少個元素
    NSLog(@"數(shù)組中有多少個元素---    %ld\n", arr2.count);
    
#pragma mark - 不可變數(shù)組方法
    // 取一個元素
    NSString *str0 = [arr2 objectAtIndex:1];
    NSLog(@"取一個元素---    %@\n", str0);
    
    // 取一個元素(簡寫)
    NSString *str1 = arr2[0];
    NSLog(@"取一個元素(簡寫)---    %@\n", str1);
    
    // 取第一個元素
    NSString *str2 = [arr2 firstObject];
    NSLog(@"取第一個元素---    %@\n", str2);
    
    // 取最后一個元素
    NSString *str3 = [arr2 lastObject];
    NSLog(@"取最后一個元素---    %@\n", str3);
    
    // 截取多個元素
    // NSIndexSet:索引集合,與數(shù)組類似,無序
    NSIndexSet *set = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 2)];
    NSArray *arr5 = [arr2 objectsAtIndexes:set];
    NSLog(@"截取多個元素---    %@\n", arr5);
    
    // 截取多個元素()
    NSArray *arr6 = [arr2 subarrayWithRange:NSMakeRange(1, 2)];
    NSLog(@"截取多個元素()---    %@\n", arr6);
}

可變數(shù)組

#pragma mark - 可變數(shù)組
- (void)setUpNSMutableArray {
    NSMutableArray *mutableArr0 = [NSMutableArray array];
    NSLog(@"mutableArr0---    %@\n", mutableArr0);
    
    NSMutableArray *mutableArr1 = [NSMutableArray arrayWithObjects:@"I", @"Love", @"U", nil];
    NSLog(@"mutableArr1---    %@\n", mutableArr1);
    
    NSMutableArray *mutableArr2 = [[NSMutableArray alloc] initWithArray:@[@"I", @"Like", @"U"]];
    NSLog(@"mutableArr2---    %@\n", mutableArr2);
    
    NSMutableArray *mutableArr3 = [NSMutableArray arrayWithArray:mutableArr1];
    NSLog(@"mutableArr3---    %@\n", mutableArr3);
    
    //  初始化可變數(shù)組對象的長度,如果后面代碼繼續(xù)添加數(shù)組超過長度以后長度會自動擴充
    NSMutableArray *mutableArr4 = [NSMutableArray arrayWithCapacity:100];
    NSLog(@"mutableArr4---    %@\n", mutableArr4);
    
    // 需要自己release
    NSMutableArray *mutableArr5 = [[NSMutableArray alloc] initWithCapacity:100];
    NSLog(@"mutableArr5---    %@\n", mutableArr5);
    
#pragma mark - 增刪改
    // 添加單個元素
    [mutableArr1 addObject:@"Forver"];
    NSLog(@"添加單個元素mutableArr1---    %@\n", mutableArr1);
    
    // 指定下標添加元素
    [mutableArr1 insertObject:@"TT" atIndex:0];
    NSLog(@"指定下標添加元素mutableArr1---    %@\n", mutableArr1);
    
    // 添加其他數(shù)組元素
    [mutableArr1 addObjectsFromArray:@[@"!", @"Do you Love me"]];
    NSLog(@"添加其他數(shù)組元素mutableArr1---    %@\n", mutableArr1);
    
    // 替換數(shù)組中的元素
    [mutableArr1 replaceObjectAtIndex:0 withObject:@"TWY"];
    NSLog(@"替換數(shù)組中的元素mutableArr1---    %@\n", mutableArr1);
    
    // 替換數(shù)組中某個范圍(索引集合)的元素
    [mutableArr1 replaceObjectsAtIndexes:[[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(5, 2)] withObjects:@[@"Do you", @"love me"]];
    NSLog(@"替換數(shù)組中某個范圍(索引集合)的元素mutableArr1---    %@\n", mutableArr1);
    
    // 取其他數(shù)組中的元素到當前數(shù)組(數(shù)組元素和替換元素個數(shù)必須相等)
    [mutableArr1 replaceObjectsInRange:NSMakeRange(5, 2) withObjectsFromArray:@[@"Can you", @"love me ?"]];
    NSLog(@"取其他數(shù)組中的元素到當前數(shù)組(數(shù)組元素和替換元素個數(shù)必須相等)mutableArr1---    %@\n", mutableArr1);
    
    // 取其他數(shù)組中的部分元素到當前數(shù)組(取出元素和替換元素個數(shù)必須相等)
    [mutableArr1 replaceObjectsInRange:NSMakeRange(5, 2) withObjectsFromArray:@[@"aa", @"aaa", @"Do you", @"love me ?", @"en heng"] range:NSMakeRange(2, 2)];
    NSLog(@"取其他數(shù)組中的部分元素到當前數(shù)組(取出元素和替換元素個數(shù)必須相等)mutableArr1---    %@\n", mutableArr1);
    
    // 交換數(shù)組中元素位置
    [mutableArr1 exchangeObjectAtIndex:0 withObjectAtIndex:4];
    NSLog(@"交換數(shù)組中元素位置mutableArr1---    %@\n", mutableArr1);
    
    // 刪除某個元素(數(shù)組中含有多個相同元素,會全部刪除)
    [mutableArr1 removeObject:@"Love"];
    NSLog(@"刪除某個元素(數(shù)組中含有多個相同元素,會全部刪除)mutableArr1---    %@\n", mutableArr1);
    
    // 刪除最后一個元素
    [mutableArr1 removeLastObject];
    NSLog(@"刪除最后一個元素mutableArr1---    %@\n", mutableArr1);
    
    // 刪除指定下標元素
    [mutableArr1 removeObjectAtIndex:0];
    NSLog(@"刪除某下標元素mutableArr1---    %@\n", mutableArr1);
    
    // 刪除范圍元素
    [mutableArr1 removeObjectsAtIndexes:[[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 2)]];
    NSLog(@"刪除范圍元素mutableArr1---    %@\n", mutableArr1);
    
    // 全部刪除
    [mutableArr1 removeAllObjects];
    NSLog(@"全部刪除mutableArr1---    %@\n", mutableArr1);
    
#pragma mark - 倒序
    NSMutableArray *temp = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
    temp = (NSMutableArray *)[[temp reverseObjectEnumerator] allObjects];
    NSLog(@"倒序---    %@\n", temp);
    
#pragma mark - 升序/降序(https://my.oschina.net/pengloo53/blog/173810)
    //通過自帶的compare方法升序排列
    NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"377", @"27", @"1", @"4777", nil];
    [array sortUsingSelector:@selector(compare:)];
    NSLog(@"升序---    %@\n", array);
    //通過倒序的方法進行降序排列
    NSEnumerator *enumerator = [array reverseObjectEnumerator];
    array = [[NSMutableArray alloc] initWithArray:[enumerator allObjects]];
    NSLog(@"降序---    %@\n", array);
    
#pragma mark - for in 遍歷數(shù)組
    //for in 遍歷數(shù)組  數(shù)組中使用時,in的前面是數(shù)組中的元素,in后面是要遍歷的集合
    for (NSString *str in array) {
        NSLog(@"遍歷數(shù)組---    %@\n", str);
    }
    
    // 分隔字符串成數(shù)組
    [self componentsString];
    // 數(shù)組拼接成字符串
    [self arrayToString];
}

#pragma mark - 分隔字符串成數(shù)組
- (void)componentsString {
    NSString *str = @"Hello World and I Love You";
    // 以空格分隔字符串成數(shù)組
    NSArray *arr = [str componentsSeparatedByString:@" "];
    NSLog(@"arr---  %@,arr.count--- %lu\n",arr,(unsigned long)arr.count);
}

#pragma mark - 數(shù)組拼接成字符串
- (void)arrayToString {
    NSArray *array = [NSArray arrayWithObjects:@"I", @"LOVE", @"U", nil];
    // 用空格隔開數(shù)組中的元素
    NSString *str = [array componentsJoinedByString:@" "];
    NSLog(@"str---  %@\n",str);
}

最后,覺得有用記得給個喜歡??!非常感謝!

簡書個人主頁:http://www.itdecent.cn/u/281c41cc90bc
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容