不可變陣列NSArray和可變陣列NSMutableArray
阿新 • • 發佈:2019-01-04
不可變陣列NSArray
陣列的建立
NSString *s1 = @“zhangsan”;
NSString *s2 = @“lisi”;
NSString *s3 = @“wangwu”;
NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3,nil];//通過alloc建立
NSArray *array2 = [NSArray arrayWithObjects:s1,s2,s3,nil];//通過類方法建立
新語法
NSArray *array3 = @[s1,s2,s3]; //陣列建立的新方法
NSString *result = array3[0];//訪問下標為0的元素
NSLog(@“%@“,result);//輸出結果為zhangsan
獲取下標為0的物件
NSArray *array = [[NSArray alloc] initWithObjects:s1,s2,s3,nil]; NSString *result = [array objectAtIndex:0];//結果為zhangsan 陣列中元素的個數 NSUInteger count = [array count];//結果為3 判斷是否包含某個物件 BOOL isContain = [array containsObject:@“zhangsan”]; //是否包含zhangsan
物件在陣列中的位置
NSUInteger index = [array indexOfObject:@“lisi"];
連線陣列中的字串
NSString *str = [array componentsJoinedByString:@“;”];//結果 zhangsan;lisi;wangwu
最後一個元素物件
NSString *lastString = [array lastObject];//結果wangwu
可變陣列NSMutableArray
NSMutableArray 是可變陣列,陣列中儲存空間是可以動態修改的。
NSMutableArray 繼承於NSArray, NSArray的方法都可以使用。
陣列的建立
NSMutableArray *array = [[NSMutable alloc] initWithCapacity:5];//設定儲存5個空間
NSString *s1 = @“zhangsan”;
NSString *s2 = @“lisi”;
NSString *s3 = @“wangwu”;
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:s1,s2,s3,nil];//初始化3個元素裝入陣列
新增元素
[array addObject:s1];
[array addObject:s2];
指定位置 插入元素
[arrayinsertObject:@“zhaoliu” atIndex:1];//將zhaoliu插入到下標為1的位置
替換元素
[arrayreplaceObjectAtIndex:0 withObject:@“zhaoliu”];//將下標為0的元素替換為zhaoliu
[array exchangeObjectAtIndex:1 withObjectAtIndex:2];//將下標為1的元素和下標為2的元素調換
新增元素
[array addObjectFromArray:array1];//將陣列array1中所有元素全部新增到array中
刪除元素
[array removeObjectAtIndex:0];//刪除下標為0的元素
[array removeObject:@“wangwu”];//刪除wangwu這個元素
[array removeLastObject];//刪除最後一個元素
[array removeAllObjects];//刪除所有元素
遍歷陣列
常規遍歷
NSString *s1 = @“zhangsan”;
NSString *s2 = @“lisi”;
NSString *s3 = @“wangwu”;
NSArray *array = [NSArray arrayWithObjects:s1,s2,s3,nil];
for(int i = 0;i<[array count]; i++){
NSString *str = [array objectAtIndex:i];//迴圈取出所有元素
}
快速遍歷
NSString *s1 = @“zhangsan”;
NSString *s2 = @“lisi”;
NSString *s3 = @“wangwu”;
NSString *array = [NSArray arrayWithObject:s1,s2,s3,nil];
for(NSString *str in array){
NSLog(@“%@”,str); //快速遍歷所有的元素
}
NSArray *array = [[NSArray alloc] initWithObjects:s1,s2,s3,nil]; NSString *result = [array objectAtIndex:0];//結果為zhangsan 陣列中元素的個數 NSUInteger count = [array count];//結果為3 判斷是否包含某個物件 BOOL isContain = [array containsObject:@“zhangsan”];