首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

NSMutableArray 可變陣列完全指南:建立、增刪改查與遍歷

     編輯:關於C++

NSMutableArray 核心特性

NSMutableArray 繼承自 NSArray,提供動態增減元素能力,是 Objective-C 中最常用的集合類別之一。元素必須為 Objective-C 物件(id 型別)。

建立與初始化

// 類別方法建立空陣列
NSMutableArray *arr = [NSMutableArray array];

// 指定初始容量 (僅為效能提示,非硬性限制)
NSMutableArray *arr0 = [NSMutableArray arrayWithCapacity:2];

// 帶初始元素 (需以 nil 結尾)
NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"1", @"3", nil];

新增元素

[arr addObject:@"x"]; // 尾端新增
[arr1 insertObject:@"2" atIndex:1]; // 指定索引插入
[arr1 insertObject:@"0" atIndex:0]; // 頭部插入

// 批次新增
NSArray *lists = @[@"3", @"4", @"5", @"6"];
[arr2 addObjectsFromArray:lists];

刪除元素

[arr1 removeLastObject]; // 移除最後一個
[arr1 removeObjectAtIndex:1]; // 移除指定索引
[arr1 removeObject:@"2"]; // 移除指定物件 (不存在則無作用)
[arr1 removeAllObjects]; // 清空陣列

替換與交換

[arr2 replaceObjectAtIndex:2 withObject:@"7"]; // 替換指定索引
[arr2 exchangeObjectAtIndex:2 withObjectAtIndex:5]; // 交換兩索引元素

遍歷方式

傳統索引遍歷

for (int i = 0; i < [arr3 count]; i++) {
    NSLog(@"arr3[%d] = %@", i, arr3[i]);
}

快速枚舉 (Fast Enumeration)

for (id value in arr3) {
    if ([value isMemberOfClass:[Person class]]) {
        Person *ps = (Person *)value;
        NSLog(@"Person: %@", ps.name);
        continue;
    }
    NSLog(@"Value: %@", value);
}

不可變轉可變:mutableCopy

NSArray *arr4 = @[@"1", @"2", @"3"];
NSMutableArray *arr5 = [arr4 mutableCopy]; // 深拷貝可變版本
[arr5 addObject:@"4"]; // 可修改

效能提示

  • 頻繁在頭部插入/刪除時,考慮使用 NSMutableArray 的雙端佇列特性,或改用 NSLinkedList (需第三方)。
  • 大量批次操作前,可用 arrayWithCapacity: 預分配空間減少擴容開銷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved