數組
不可變數組
初始化創建一個數組(NSArray)對象
NSArray *array1=[[NSArray alloc]init];
NSArray *array2=[NSArray array];
創建一個裏面有一個元素的不可變數組
NSArray *array3=[NSArray arrayWithObject:@"Rick"];
創建裏面有多個元素的不可變數組
NSArray *array4=[NSArray arrayWithObjects:@"Rick",@"Jack",@"Leo", nil];
nil 只能出現在數組的最後,不能在數組中間存放nil,因爲nil是一個NSArray的數組結束標誌。
新語法
NSArray *array5=@[@"array"];
NSArray *array6=@[@"Rick",@"Jack",@"Leo"];
//[NSNumber numberWithInt:5];
根據一個數組產生一個新的數組
NSArray *array7=[NSArray arrayWithArray:array6];
NSLog(@"%@",array7);
從本地裏面提取數組文件
NSArray *array8=[NSArray arrayWithContentsOfFile:@""];
NSArray *array9=[NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];
求數組中元素個數
NSUInteger count=array6.count;
//數組的操作
//訪問數組中的元素
//訪問array6中的第一個元素
NSString *str1=[array6 objectAtIndex:0];
遍歷數組(for循環)
for (int i=0; i<array6.count; i++) {
NSLog(@"%@",[array6 objectAtIndex:i]);
}
新語法訪問數組中元素
NSString *str2=array6[0];
NSArray *array10=@[@3,@4,@5];
//@3 [NSNumber numberWithIndex:3]
//[NSNumber numberWithIndex:YES];
//@YES 就是OC中的布爾型的true;
通過數組中的元素查找下標
NSUInteger index= [array6 indexOfObject:@"Rick"];
NSLog(@"index = %lu",index);
判斷數組中是否存在某個元素
if ( [array6 containsObject:@"Rick"]) {
NSLog(@"包含此元素");
}
向不可變數組拼接一個元素
NSArray *newarray1=[array6 arrayByAddingObject:@"xiangjie"];
向不可變數組拼接一個數組,以及使用分隔符合並數組爲字符串和將字符串拆分爲數組。
NSArray *newarray2=[array6 arrayByAddingObjectsFromArray:array6];
NSString *string=[newarray2 componentsJoinedByString:@"~.~"];
NSLog(@"%@",string);
NSArray *array11=@[@"123",@"456",@"789",@"000"];
NSString *string2=[array11 componentsJoinedByString:@"-"];
NSLog(@"%@",string2);
NSArray *array12=[string2 componentsSeparatedByString:@"-"];
NSLog(@"%@",array12);
NSString *string3=[array12 componentsJoinedByString:@""];
NSLog(@"%@",string3);
使用NSArray 注意事項:
1.數組越界的問題
2.數組最後一個結束標誌爲nil,中間不能放nil
3.數組會對加入其中的對象自動把引用加一,
可變數組
可變數組的定義:
可變數組 NSMutableArray ,它是 NSArray 的子類
初始化方法
初始化一個空數組
NSMutableArray *array1 =[NSMutableArray array];
初始化一個裏面有一個元素的數組
NSMutableArray *mArray2=[NSMutableArray arrayWithObject:@"1"];
創建一個裏面有多個元素的數組
NSMutableArray *mArray3=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
根據另一個數組創建新的數組
NSMutableArray *mArray4=[NSMutableArray arrayWithArray:mArray3];
可變數組獨有的初始化方法
NSMutableArray *mArray5=[NSMutableArray arrayWithCapacity:10];
引入文件和網頁
NSMutableArray *mArray6 =[NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArray7 =[NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@"www.baidu.com"]];
增加
在數組末尾添加一個元素
[mArray3 addObject:@"5"];
NSLog(@"%@",mArray3);
在數組指定位置插入一個元素
[mArray3 insertObject:@"4" atIndex:3];
[mArray3 replaceObjectAtIndex:1 withObject:@"Rick"];
交換
[mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:3];
NSLog(@"%@",mArray3);
刪除
刪除指定元素
[mArray3 removeObject:@"1"];
刪除指定位置上的元素
[mArray3 removeObjectAtIndex:1];
NSLog(@"%@",mArray3);
刪除最後一個元素
[mArray3 removeLastObject];
刪除數組內全部元素
[mArray3 removeAllObjects];
查
NSMutableArray *newArray=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
for (int i=0; i<newArray.count; i++) {
NSLog(@"%@",newArray[i]);
}
NSLog(@"---------");
//快速枚舉 不知道類型時可以把這個類型改成id
for(NSString *element in newArray){
NSLog(@"element = %@",element);
}
//使用系統提供的枚舉類型 NSEnumerator
//創建一個枚舉器
NSEnumerator *enumerator = [newArray objectEnumerator];
id obj;
while (obj =[enumerator nextObject]){
// [newArray addObject:@"5"];
NSLog(@"obj=%@\n",obj);
}
/*
使用快速枚舉或枚舉器遍歷時,不要添加或者刪除數組元素,否則運行時就會崩潰
*/