#pragma mark 不可变数组
// 创建方法
快速创建(不可变):@[obj1,obj2,obj3];
快速访问数组元素:数组名[i]
// 静态创建
NSArray * array1 = [NSArrayarrayWithObjects:@"One",@"Two",@"Three", nil];
// 实例创建
NSArray * array2 = [[NSArrayalloc]initWithObjects:@"One",@"Two",@"Three",nil];
// array3 来自于 array1
NSArray * array3 = [NSArrayarrayWithArray:array1];
// 数组元素个数
NSInteger count = [array1 count];
// 根据索引获取元素
NSString * string1 = [array1 objectAtIndex:0];
// 向数组中添加元素
NSArray * array4 = [array1 arrayByAddingObject:@"打飞机"];
// 把数组转化成字符串(用指定的字符串将数组中的元素连接起来)
NSString * arrayStr = [array1 componentsJoinedByString:@" "];
// 检查数组中是否包含某一元素
BOOL isContain = [array1 containsObject:@"end"];
// 根据对象返回对应的索引
NSInteger index = [array1 indexOfObject:@"Two"];
// 获取数组的最后一个元素
NSString * lastStr = [array1 lastObject];
// for循环遍历数组元素
for (int i = 0; i<[array1 count]; i++) {
NSString* str = [array1 objectAtIndex:i];
NSLog(@"str = %@",str);
}
// 泛型遍历
// for (<#type *object#> in <#collection#>) {
// <#statements#>
// }
// 在数组中找类型为字符串的元素
for (NSString* str in array1) {
NSLog(@"------str = %@",str);
}
#pragma mark 可变数组
// 创建方法
// 静态创建
NSMutableArray * MutArray1 = [NSMutableArrayarrayWithCapacity:0];
NSMutableArray * MutArray = [NSMutableArrayarrayWithObjects:@"One",@"Two", nil];
// 实例创建
NSMutableArray * MutArray2 = [[NSMutableArrayalloc]initWithCapacity:0];
// 来自其他数组
NSMutableArray * MutArray3 = [NSMutableArrayarrayWithArray:MutArray1];
// 向可变数组增加元素
[MutArray1 addObject:@"One"];
[MutArray1 addObject:@"Two"];
// 根据索引添加元素
[MutArray1 insertObject:@"Three"atIndex:2];
// 移除指定的元素
[MutArray1 removeObject:@"Three"];
// 根据索引移除元素
[MutArray1 removeObjectAtIndex:1];
// 向数组中添加数组
[MutArray1 addObjectsFromArray:MutArray];
// 替换指定索引的元素
[MutArray1 replaceObjectAtIndex:0withObject:@"Zero"];
// 移除所有元素
[MutArray1 removeAllObjects];
// 用指定的值替换对应的索引的元素
[MutArray1 replaceObjectAtIndex:0withObject:@"100"];
// 遍历数组
NSMutableArray * mutArray = [NSMutableArrayarrayWithObjects:@"1",@"2",@"3", nil];
for (int Index = 0; Index < [mutArray count]; Index++) {
NSString * str = [mutArray objectAtIndex:Index];
}
// 快速遍历
// 当元素的类型不知道时用 id 类型
for (id str in mutArray) {
NSLog(@"%@",str);
}
// block遍历
NSArray * array = @[@"1",@"stop",@"jack"];
[array enumerateObjectsUsingBlock:^(id_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"元素:%@,索引%ld",obj,idx);
}];