数组NSArray与NSMutableArray的常用方法
数组中可以放任何类型的数据,并且一个数组中的元素类型可以不一致。只要是(id类型)对象。
NSArray
1、初始化
NSArray *array = @[@"123", @"456", @2];
2、初始化,最后需要以nil结尾
NSArray *array = [[NSArray alloc] initWithObjects:@"123", @"456", nil];
3、初始化,使用一个数组初始化另一个数组
NSArray *array = [[NSArray alloc] initWithArray:@[@"123"]];
4、初始化,类方法,最后需要以nil结尾
NSArray *array = [NSArray arrayWithObjects:@"-", @"+", @"=", nil];
5、拼接,将一个新对象拼接在数组的后面,拼接后返回新的数组
NSArray *array1 = @[@"123", @"456"]; NSArray *array2 = [array1 arrayByAddingObject:@"789"];
6、拼接,将另个数组中的所有对象,拼接到数组后面,拼接后返回新的数组
NSArray *array1 = @[@"123", @"456"]; NSArray *array2 = [array1 arrayByAddingObjectsFromArray:array1];
7、连接,以某个连接符(字符串)连接数组中所有的对象,然后以字符串返回连接后的结果
NSArray *array = @[@"123", @"456"]; NSString *string = [array componentsJoinedByString:@"*"]; //一般只用于数组元素全部为字符串类型的数组
8、根据索引提取相应的元素
NSArray *array = @[@"123", @"456", @2]; NSString *string = [array objectAtIndex:1];
9、根据数组的元素得到对应的索引
NSArray *array = @[@"123", @"456"]; NSUInteger integer = [array indexOfObject:@"123"];
10、取首尾元素
NSArray *array = @[@"123", @"456"]; NSString *firstString = [array firstObject]; NSString *lastString = [array lastObject]; NSInteger count = [array count]; //当count = 1时,firstObject和objectAtIndex:0取出的是相同的对象。 //当count = 0时,firstObject取出的是null,objectAtIndex:1会使得程序异常退出(越界访问)。
11、使用自定义的OC数组排序函数,将数组元素进行排序
NSInteger comp(id objc1, id objc2, void *p) { // -1升序,不交换元素 // 0相等,不交换元素 // 1降序,交换元素 if ([objc1 compare:objc2] == 1) { return 1; }else { return 0; } }
NSArray *array1 = @[@"123", @"456"]; NSArray *array2 = [array1 sortedArrayUsingFunction:comp context:nil];
NSMutableArray
1、初始化
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];
2、根据索引号(不可越界)插入元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray insertObject:@"123" atIndex:0];
3、添加元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray addObject:@9];
4、匹配并删除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"2", nil]; [mArray removeObject:@"2"]; // 一次性把两个@"2"都删除
5、根据range删除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"2", nil]; NSRange range = {0, 2}; [mArray removeObject:@"2" inRange:range];
6、删除所有元素
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray removeAllObjects];
7、根据索引移除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray removeObjectAtIndex:2];
8、根据索引替换元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray replaceObjectAtIndex:0 withObject:@"123"];
9、交换元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil]; [mArray exchangeObjectAtIndex:0 withObjectAtIndex:2];