{
// 数组 (NSArray)
// 系统提供的数组类 -- 类似于c语言中的数组
// oc中得数组是一个大容器,数组可以存放不同类型的对象,且只能保存对象
// OC数组提供了两类数组 NSArray (不可变数组)NSMutablearray(可变数组)
// 可变与不可变区别:可变就意味着对原有的对象进行增删改操作, 不可变就意味着数组一经创建就不能修改
// 1.创建对象
// 1)创建初始化方法
NSArray *array = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];
NSLog(@"%@", array);
NSArray *array2 = [[NSArray alloc] initWithArray:array];
NSLog(@"%@", array2);
// 2)便利构造器
//初始化多个元素object‘s’。
NSArray *array1 = [NSArray arrayWithObjects:@"q", @"w", @"e", @"r", @"w", nil];
NSLog(@"%@", array1);
NSArray *array3 = [NSArray arrayWithArray:array1];
NSLog(@"%@", array3);
// 3)字面量
NSArray *array4 = @[@"1", @"2", @"3"];
NSLog(@"%@", array4);
// 2.获取数组元素的个数
NSLog(@"%lu", array1.count);
// 3.获取数组中元素
// 1)给定位置获取元素
NSLog(@"%@", [array1 objectAtIndex:0]);
// 2)第一个元素
NSLog(@"%@", [array1 firstObject]);
// 3)最后一个元素
NSLog(@"%@", [array1 lastObject]);
// 4.根据元素获取元素在数组中对应的索引(下标)
//在未找到的情况下返回随机的一个数
NSLog(@"%ld", [array1 indexOfObject:@"w"]);
// 5.判断数组中是否包含某一个人给定的对象
// NSLog(@"%d", [array1 containsObject:@"q"]);
if ([array1 containsObject:@"w"]) {
NSLog(@"存在");
} else {
NSLog(@"不存在");
}
// 6.NSArray 与 NSString 的相互转换方法
// NSArray -> NSString
NSArray *arr = @[@"男哥最衰", @"真的很衰", @"还有谁"];
NSString *str = [arr componentsJoinedByString:@","];
NSLog(@"%@", str);
// NSString -> NSArray
NSLog(@"%@", [str componentsSeparatedByString:@"$"]);
// 可变数组
// 1.初始化方法
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:@"d", @"f", @"f", nil];
NSLog(@"%@", mutableArray);
// 2.便利构造器
//与父类初始化方法相同
NSMutableArray *mutableArray1 = [NSMutableArray arrayWithObjects:@"1", nil];
// 4。添加元素
[mutableArray1 addObject:@"2"];
NSLog(@"%@", mutableArray1);
//通过数组添加
[mutableArray1 addObjectsFromArray:array1];
NSLog(@"%@", mutableArray1);
// 5.删除元素
// 1)删除单个元素
[mutableArray1 removeObject:@"w"];//只要有匹配的对象就删除掉
NSLog(@"%@", mutableArray1);
// 2)删除所有元素
// [mutableArray1 removeAllObjects];
// 6.插入元素
[mutableArray1 insertObject:@"w" atIndex:2];
NSLog(@"%@", mutableArray1);
// mutableArray1 insertObjects:<#(nonnull NSArray *)#> atIndexes:<#(nonnull NSIndexSet *)#>
// 7。交换指定位置两个元素
[mutableArray1 exchangeObjectAtIndex:1 withObjectAtIndex:3];
NSLog(@"%@", mutableArray1);
// 8.替换元素
[mutableArray1 replaceObjectAtIndex:0 withObject:@"www"];
NSLog(@"%@", mutableArray1);
return 0;
}