数组的特点:
1、数组中的元素是有序的;
2、数组元素的下标从0开始;
OC中提供的数组对象
3、数组中只能存储对象,不能存储基本数据类型;
4、数组中存数的对象类型可以不同。
NSArray 不可变数组
1、创建对象。 初始化方法中的nil的作用:结束数组元素的存储,nil后面的数据不会存储在数组中
NSArray * arr1 =[[NSArray alloc]initWithObjects:@"10",@"20",@"30", nil];
NSLog(@"%@",arr1);
NSArray * arr2 =[[NSArray alloc] initWithObjects:@"杨 01",@"杨 02",@"杨 03", nil]; //汉字在OC中显示为unicode编码。
NSLog(@"%@",arr2);
2、获取元素个数
NSUInteger count =[arr1 count];
NSLog(@"%lu",count);
3、根据下标读取数组元素
NSString * s1 =[arr1 objectAtIndex:1];
NSLog(@"%@",s1);
NSString * s2 =arr1[2];
NSLog(@"%@",s2);
4、获取某个数组元素的下标
NSUInteger index =[arr1 indexOfObject:@"30"];
NSLog(@"%lu",index);
5、使用语法糖创建不可变数组对象
NSArray * arr3 =@[@"30", @"20", @"10"];
NSLog(@"%@",arr3);
NSMutableArray 可变数组
获取元素个数、访问数组元素和NSArray的方法一致,是NSArray的子类。
1、创建可变的数组对象
NSMutableArray *arr1 = [[NSMutableArray alloc] init];//空数组
NSLog(@"%@",arr1);//结果为{ }
//空指针
NSMutableArray *arr2 = nil;
NSLog(@"%@",arr2);//结果为(null)
2、将@“20”@“30” @“40” 按顺序添加到数组中
添加的顺序:添加在数组的最后一个元素的位置上
[arr1 addObject:@"20"];
[arr1 addObject:@"30"];
[arr1 addObject:@"40"];
NSLog(@"%@",arr1);
3、插入 指定的位置
[arr1 insertObject:@"50" atIndex:2];
NSLog(@"%@",arr1);
4、交换元素位置
[arr1 exchangeObjectAtIndex:0 withObjectAtIndex:3];
NSLog(@"%@",arr1);
5、替换元素(类似C语言中,修改数组元素)
[arr1 replaceObjectAtIndex:1 withObject:@"60"];
或:arr1[1]= @"80";
NSLog(@"%@",arr1);
6、移除、删除元素
(1)根据下标移除
[arr1 removeObjectAtIndex:0];
NSLog(@"%@",arr1);
(2)根据对象移除
[arr1 removeObject:@"60"];
NSLog(@"%@",arr1);
(3)移除最后一个对象
[arr1 removeLastObject];
NSLog(@"%@",arr1);
(4)移除全部对象
[arr1 removeAllObjects];
NSLog(@"%@",arr1);
6、使用for循环实现数组遍历
NSArray * arr =@[@"l", @"o", @"v", @"e"];
for (int i = 0; i< arr.count; i++) {
NSLog(@"%@", arr[i]);
}