OC學習----可變陣列與不可變陣列
阿新 • • 發佈:2019-01-04
NSArray / NSMutableArray
在OC中,我們用 NSArray
類和 NSMutableArray
類來表示陣列.其中, NSArray
類是 NSMutableArray
類的父類.在OC中,我們的陣列是有序的 物件
的集合,即我們的陣列只能儲存 物件
.在OC中我們的陣列中元素型別不能是 int
,float
,CGPoint
等型別.
NSArray(不可變陣列)
1.初始化方法
//建立一個空不不可變的陣列 NSArray *ary1 = [[NSArray alloc] init]; NSArray *ary2 = [NSArray array]; //建立一個裡面只有一個元素的不可變陣列 NSArray *ary3 = [NSArray arrayWithObject:@"abcdefg"]; //建立一個裡面有多個元素的不可變陣列 NSArray *ary4 = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",nil]; //新語法 NSArray *ary5 = @[@"abcdefg"];//與3等價 NSArray *ary6 = @[@"aa",@"bb",@"cc",@"dd"];//與4等價 NSArray *ary7 = [NSArray arrayWithArray:ary2]; //從本地檔案中讀取陣列 NSArray *ary8 = [NSArray arrayWithContentsOfFile:@""]; //從網路檔案中讀取陣列 NSArray *ary9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
2.陣列元素個數
NSUInteger count = ary6.count;
3.訪問陣列元素
//訪問ary6中的第一個元素
NSString *str = [ary6 objectAtIndex:0];
for (int i = 0; i < ary6.count; i++) {
NSLog(@"陣列中第%d個元素為:%@",i,[ary6 objectAtIndex:i]);
}
4.通過陣列中的元素找對應的下標
NSUInteger index = [ary6 indexOfObject:@"aa"]; NSLog(@"index = %lu",(unsigned long)index);
5.判斷陣列中是否存在某上元素
BOOL flag = [ary6 containsObject:@"bb"];
6.向不可變陣列中增加一個元素,生成一個新的陣列
NSArray *newAry = [ary6 arrayByAddingObject:@"ee"]; NSArray *newAry1 = [ary6 arrayByAddingObjectsFromArray:ary6]; NSString *string = [newAry componentsJoinedByString:@","]; NSArray *array = @[@"123",@"456",@"789",@"000"]; NSString *string1 = [array componentsJoinedByString:@"-"]; NSLog(@"%@",string1); NSArray *array1 = [string1 componentsSeparatedByString:@"-"]; NSLog(@"array = %@",array1); NSString *string2 = [array1 componentsJoinedByString:@""]; NSLog(@"%@",string2);
NSMutableArray(可變陣列)
`NSMutableArray` 為 `NSArray` 的子類.
1.初始化方法
//初始化一個空的可變陣列
NSMutableArray *mArray1 = [NSMutableArray array];
NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray2];
//可變陣列獨有的初始化方法
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:@""];
2.增加元素
//在陣列的末尾增加一個元素
[mArray3 addObject:@"5"];
//在陣列的指定位置增加一個元素
[mArray3 insertObject:@"yanshuxin" atIndex:3];
3.元素替換
//將陣列指定位置上的元素替換成使用者想要的元素
[mArray3 replaceObjectAtIndex:2 withObject:@"sb"];
4.元素交換
[mArray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];
5.刪除元素
//刪除指定元素
[mArray3 removeObject:@"1"];
//刪除指定位置上的元素
[mArray3 removeObjectAtIndex:2];
//刪除陣列中最後一個元素
[mArray3 removeLastObject];
//刪除所有元素
[mArray3 removeAllObjects];
6.快速遍歷
//for(型別 物件 in 集合)
for (NSString *ele in mArray3) {
NSLog(@"ele = %@",ele);
}