数组是一个有序的集合,通过索引下标可以取到各个元素。
数组有可变数组NSArray和不可变数组NSMutableArray。
数组中不可以保存基本数据类型和结构体,只能保存结构体。基本数据类型和结构体需要使用NSNumber和NSValue进行封装。
1.数组的创建
创建个空数组:(没什么用,因为数组不可变)
NSArray *array=[NSArray array];
创建只有一个元素的数组:
NSArray *array=[NSArray arrayWithObject:@“one”];
创建有多个元素的数组:
NSArray *array1=[NSArray arrayWithObject:@“one”,@“two”,@“three”,nil];
通过一个已有数组创建一个新的数组:(没有意义,不过可用来创建可变数组)
NSArray *array2=[NSArray arrayWithArray:array1];
2.NSArray中的元素
数组的长度
NSUInteger length =[array1 count];
或=array.count;
通过数组中的下标得到数组中的元素
NSString *x =[array1 objectAtIndex:0];
获取数组中第一个元素
NSString *first=[array1 firstObject];
获取数组中最后一个元素
NSString *first=[array1 lastObject];
判断数组中是否包含某个对象
if ([names containsObject:@"赵六"]) {
NSLog(@"包含赵六");
}else NSLog(@"不包含");
获取某个对象在数组中的下标
NSUInteger index=[array indexOfObject:@“one”];
3.便利数组
NSArray *stringArray=[NSArray arrayWithObjects:@“one”,@“two”,@“three”,nil];
方法1
for(int i=0;i<stringArray.count;i++){
NSString *n =[stringArray objectAtIndex:i];
}
方法2(需在不需要使用到数组中位置的时候使用)
for(NSString *n in stringArray){
}
可变数组(一定要初始化)
是NSArray的一个子类。
1.创建可变数组
NSMutableArray *names=[NSMutableArray array];
向可变数组中添加对象(在for in循环中不能修改数组还继续便利 ,如果修改数组就返回return)
[names addObject:@“张学友”];
从数组中删除对象(在for in循环中不能修改数组还继续便利 ,如果修改数组就返回return)
[names removeObject:@"庄学友”];
从数组中在删除指定位置的数据
[self.numbers removeObjectAtIndex:i];
在数组中指定位置插入数据
[self.numbers insertObject:@(result) atIndex:i];
把数组中指定位置的数据替换掉
[self.operators replaceObjectAtIndex:self.operators.count-1 withObject:title];