数组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];

 

 

 

 

posted @ 2018-04-22 22:39  码出境界  阅读(372)  评论(0编辑  收藏  举报