NSArray
NSArray
是Foundation框架中一个用来存储和操作数组的类。NSArray
及其子类NSMutableArray
被称为数组的对象的有序集合。NSArray
创建静态数组,NSMutableArray
创建动态数组。当需要有序的对象集合时,可以使用数组。
创建方式
NSArray *array1 = [NSArray new];
NSArray *array2 = [[NSArray alloc]init];
NSArray *array3 = [NSArray array];
// 创建并赋值
NSArray *array4 = [[NSArray alloc]initWithObjects:@"a",@"b",@"c", nil];
NSArray *array5 = @[@"a",@"b",@"c"];
复制代码
NSArray常用方法
获取数组Count
@property (readonly) NSUInteger count;
-
只读,获取数组内元素总数。
-
用法:
array.count; //获取数组 array 内项目个数 复制代码
位置索引
@property (nullable, nonatomic, readonly) ObjectType firstObject;
@property (nullable, nonatomic, readonly) ObjectType lastObject;
-
获取数组的第一个\最后一个元素。
-
用法:
[array firstObject]; //获取第一个元素 [array lastObject]; //获取最后一个元素 复制代码
- (ObjectType)objectAtIndex:(NSUInteger)index;
-
获取数组中在指定下标位置的元素。
-
用法:
[array objectAtIndex:2]; //获取数组 array 中下标为 2 的元素 复制代码
内容索引
- (NSUInteger)indexOfObject:(ObjectType)anObject;
-
获取指定元素在数组内的下标。
-
用法:
[array indexOfObject:@"b"]; //获取字符串 "b" 在数组内的下标 复制代码
包含判断
- (BOOL)containsObject:(ObjectType)anObject;
-
判断数组内是否包含指定元素。
-
用法:
[array containsObject:@"b"]; //判断数组 array 中是否包含字符串 "b" 复制代码
数组转字符串
- (NSString *)componentsJoinedByString:(NSString *)separator;
-
把数组内元素组成字符串并用指定字符串分割。
-
用法:
NSString *str = [mutableArray componentsJoinedByString:@","]; //把数组内的元素组合成字符串并以 "," 分割 复制代码
数组的快速枚举
由于直接使用NSLog(@"%@",array);
打印数组,数组内的中文是无法正常显示的,一般在这种情况下会使用for-in
循环来打印数组中的内容。
for (NSString *str in array)
NSLog(@"%@",str);
复制代码
NSMutableArray
NSMutableArray
是动态数组,简单来说NSMutableArray
与NSArray
的区别是,NSMutableArray
创建的数组对象能够进行增删改的操作,而NSArray
只能进行查的操作。
创建方式
NSMutableArray *mutableArray1 = [NSMutableArray new];
NSMutableArray *mutableArray2 = [[NSMutableArray alloc]init];
NSMutableArray *mutableArray3 = [NSMutableArray array];
// 创建并赋值
NSMutableArray *mutableArray4 = [[NSMutableArray alloc]initWithObjects:@"a",@"b",@"c", nil];
// 根据不可变数组创建可变数组
NSMutableArray *mutableArray5 = [NSMutableArray arrayWithArray:array];
复制代码
常用方法
增加元素
- (void)addObject:(ObjectType)anObject;
-
在数组末尾增加一个元素。
-
用法:
[mutableArray addObject:@"d"]; //在数组末尾增加一个元素 "d" 复制代码
- (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index;
-
在数组的指定下标位置插入一个元素。
-
用法:
[mutableArray insertObject:@"d" atIndex:2]; //在下标为 2 的位置插入元素"d" 复制代码
删除元素
- (void)removeLastObject;
-
删除数组末尾的元素。
-
用法:
[mutableArray removeLastObject]; //删除数组最后一个元素 复制代码
- (void)removeAllObjects;
-
删除数组内所有元素。
-
用法:
[mutableArray removeAllObjects]; //删除数组内所有元素 复制代码
- (void)removeObjectAtIndex:(NSUInteger)index;
-
删除数组中指定下标的一个元素。
-
用法:
[mutableArray removeObjectAtIndex:2]; //删除数组中下标为 2 的元素 复制代码
- (void)removeObject:(ObjectType)anObject;
-
删除数组内的指定元素。
-
用法:
[mutableArray removeObject:@"b"]; //删除数组内值为 "b" 的元素 复制代码
修改元素
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(ObjectType)anObject;
-
修改指定下标元素的值。
-
用法:
[mutableArray replaceObjectAtIndex:1 withObject:@"d"]; //就数组中下标为 1 的元素的值改为"d" 复制代码