一,首先我们必须清楚数组的价值是什么?为什么使用数组,他给我们带来什么方便之处.
1.数组存在的价值在于:
(1)存储多个元素(2)存数元素只能是对象,对象可以使不同类型的(3)数组是一个有序的集合.
(4)数组中的元素可以重复 而且重复的对象会成为数组元素
知道了数组的价值,那么们开始使用数组的方法吧!
1,创建对象
(1)使用便利构造器 arraywithobject 创建对象可以指定多个对象元素元素间用逗号间隔
nil作为数组元素存放的结束标志,遇到 nil 之后的元素都不会放进数组
NSArray *array = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd", nil];
(2)使用初始化方法 减号方法
NSArray *array1 = [[NSArraalloc]initWithObjects:@"aa",@"bb",@"cc",@"dd",@"aa",@"bb",@"cc",@"dd", nil];
2 获取数组中的元素个数
count方法
例:
NSUInteger count = [array count];
3. 根据索引值获取对象
(1)根据指定下标获取对应元素
objectAtIndex:(下标) 方法
例:
NSString *str = [array objectAtIndex:1];
NSLog(@"str = %@",str);
(2)获取数组第一个元素
firstObject
例:
NSString *str1 = [array firstObject];
这时注意了,有可能你会说利用根据指定下标的方法也可以得到第一个元素,但为什么还要用这个方法呐?
利用 firstObject方法 ,若数组为空 则返回 nil
而objectAtIndex:0 则会造成'NSRangeException [__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'' 崩溃 下标越界
不信的话自己可以去试试哦,保证爽到爆!!!
(3)获取数组最后元素
lastObject方法(这里和fistObject相同)
例:
NSString *str2 = [array lastObject];
NSLog(@"str2 = %@",str2);
4,获取对象在数组中的索引值
indexOfObject:方法 :后面跟对象名
NSUInteger count1 = [array indexOfObject:@"dd"];
5.判断是否包含某些对象
containsObject:跟对象名
BOOL isExist = [array containsObject:@"dd"];
NSLog(@"isExist = %d",isExist);
6.排序
sortedArrayUsingSelector:@selector(compare:)方法 其中@selector是方法选择器
NSArray *sortArr = [array1 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"sortarr = %@",sortArr);
7.快速遍历(快速枚举)
for (NSString *str2 in array1) {
NSLog(@"%@",str2);
}
for (int i = 0; i < [array count]; i++) {
NSString *str2 = [array objectAtIndex:i];
NSLog(@"str2 = %@",str2);
}
可变数组类 NSMutableArray和可变字符串类 一样 在原数组操作 不需要返回值
1创建数组对象
NSMutableArray *arr1 = [[NSMutableArray alloc]initWithObjects:@"aa",@"bb",@"cc",@"dd", nil];
2 添加元素
[arr1 addObject:@"ff"];
NSLog(@"arr1 = %@",arr1);
3 插入元素
[arr1 insertObject:@"gg" atIndex:1];
NSLog(@"arr1 = %@",arr1);
4 删除元素
[arr1 removeObject:@"bb"];
NSLog(@"arr1 = %@",arr1);
5 替换元素
[arr1 replaceObjectAtIndex:3 withObject:@"ee"];
NSLog(@"arr1 = %@",arr1);
6交换指定位置的元素
[arr1 exchangeObjectAtIndex:2 withObjectAtIndex:3];
NSLog(@"arr1 = %@",arr1);
//7 对原数组进行排序
[arr1 sortUsingSelector:@selector(compare:)];
NSLog(@"arr1 = %@",arr1);
8 遍历
for (NSString *a in arr1) {//如果数组中的对象类型不同,我们就是用对象的泛型 id 类型 可以代表所有对象类型
NSLog(@"a = %@",a);
}
(移除所有元素)
[arr1 removeAllObjects];
NSLog(@"arr1 = %@",arr1);
到现在你回发现,其实苹果团队起的方法名是很好懂的,我们根据方法名就知道,这个方法的作用,同样我们也可以根据自己想要做的操作,来猜想方法的名称,再利用编译工具的强大提示,你一定会掌握住的.