//oc 中的数组是一个大容器,数组可以存放不同类型的对象,且只能保存对象;
//oc数组提供了两类数组 NSArray(不可变数组) NSMtableArray(可变数组)
//可变与不可变的区别:可变就意味着对原有的对象进行增删改操作,而不可变就意味着数组一经创建就不能在修改;
1.数组
(一)初始化数组(不可变数组)
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];//正常初始化一个数组
NSArray *array1 = [[NSArray alloc] initWithArray:array];//根据一个数组初始化一个数组
NSArray *array4 = [NSArray arrayWithObject:@"p"];//初始化一个元素
NSArray *array5 = @[@"1", @"2", @"3"];//字面量创建数组(常用)
一些常用属性
1 获取数组的元素个数
NSLog(@"%lu", array5.count);
2.获取数组中的元素
// 1)给定位置获取元素
NSLog(@"%@", [array5 objectAtIndex:1]);
// 2)第一个元素
NSLog(@"%@", [array5 firstObject]);
// 3)最后一个元素
NSLog(@"%@", [array5 lastObject]);
// 4 根据元素获取元素在数组中对应的索引(下标)
// 在未找到的情况下返回随机的一个数
NSLog(@"%ld", [array5 indexOfObject:@"1"]);
// 5 判断数组中是否包含某一个给定的对象
if ([array5 containsObject:@"1"]) {
NSLog(@"存在");
} else {
NSLog(@"不存在");
}
//两个转换(重点)
// 数组转字符串
NSArray *arr = @[@"1111", @"2222", @"3333"];
NSString *str = [arr componentsJoinedByString:@","];//分隔号
// 字符串转数组
NSLog(@"%@", [str componentsSeparatedByString:@","]);//分隔号
(二) 可变数组(继承与不可变数组, 初始化方法相同)
1.初始化一个可变数组
1. 初始化方法
NSMutableArray *MutableArr = [[NSMutableArray alloc] initWithObjects:@"aa", @"ss", @"cc", nil];
2.添加元素
// 直接向后面追加对象
[MutableArr addObject:@"2"];
// 通过数组添加
[MutableArr addObjectsFromArray:array5];
3.删除元素
// 1)删除单个元素
[MutableArr removeObject:@"2"];
NSLog(@"%@", MutableArr);//只要有匹配对象就删除掉
// 2)删除所有元素
// [MutableArr removeAllObjects];
// 6.插入元素
[MutableArr insertObject:@"qqq" atIndex:2];
// ar insertObjects:<#(nonnull NSArray *)#> atIndexes:<#(nonnull NSIndexSet *)#>批量插入?
// 7. 交换指定位置的两个元素
[MutableArr exchangeObjectAtIndex:0 withObjectAtIndex:2];
// 8. 替换元素
[MutableArr replaceObjectAtIndex:0 withObject:@"www"];