OC NSArray 和 NSMutableArray 常用方法的使用和实例



#import <Foundation/Foundation.h>

NSInteger intSort(id num1, id num2, void *context);


int main(int argc, const char * argv[]) {

  

    //NSArray 不可变数组常用方法

    NSArray *arr = [[NSArray alloc] initWithObjects:@"a", @"andy", @"b", @"c", @"e", @"f", nil];

    

    //OC数组中nil 作为结束标志 不能插入中间

    NSArray *arr1 = [NSArray arrayWithObjects:@"wendy", @"andy", @"standy", @"tom", @"jarry" ,nil];

    

    //OC数组只能存放对象 arr1的对象初始化arr2

    NSArray *arr2 = [[NSArray alloc] initWithArray:arr1];

    NSLog(@"%@", arr2);

    

    //C数组 转化OC数组

    NSString *carr[10] = {@"123", @"456", @"789"};

    NSArray *arr3 = [[NSArray alloc] initWithObjects:carr count:3];

    NSLog(@"%@", arr3);

    

    //返回数组中第一个该元素的下标,返回值%ld

    NSLog(@"%ld", [arr indexOfObject:@"c"]);

    

    //返回数组范围内该元素的下标 0开始

    NSRange range = {0,3};

    NSLog(@"%ld", [arr indexOfObject:@"a" inRange:range]);

    NSLog(@"%ld", [arr indexOfObjectIdenticalTo:@"a"]);

    

    //判断数组中该元素是否存在 返回bool

    NSLog(@"%d", [arr containsObject:@"a"]);

    //返回数组中元素个数

    NSLog(@"%ld", [arr count]);

    //数组中的第一个元素

    NSLog(@"%@", [arr3 firstObject]);

    //数组中的最后一个元素

    NSLog(@"%@", [arr3 lastObject]);

    

    //取数组范围内连续元素赋给新的数组并返回

    NSRange range1 = {0, 1};

    NSLog(@"%@", [arr3 subarrayWithRange:range1]);

    

    //返回数组中指定坐标下对应的元素

    NSLog(@"%@", [arr3 objectAtIndex:1]);

    

    NSLog(@"%@", [arr3 objectAtIndexedSubscript:1]);

    //自定义初始化下标

    NSIndexSet *index = [[NSIndexSet alloc] initWithIndex:0];

    //返回包含原数组中对应该下标元素的新数组

    NSLog(@"%@", [arr3 objectsAtIndexes:index]);

    //返回对应数组值等于给定对象的第一个下标 0 开始

    NSLog(@"%ld", [arr indexOfObject:@"c"]);

    //返回对应数组值 range下标范围内的第一个与给定值相等的值的下标

    NSLog(@"%ld", [arr indexOfObject:@"a" inRange:range]);

    

    //查找两数组中第一个相同的元素并返回

    NSLog(@"%@", [arr firstObjectCommonWithArray:arr1]);

    //判断两数组是否相等 返回值 BOOL

    NSLog(@"%d", [arr isEqualToArray:arr1]);

    //数组相加

    NSLog(@"%@", [arr arrayByAddingObject:arr1]);

    //运行结果  (

//    a,

//    andy,

//    b,

//    c,

//    e,

//    f,

//    (

//     wendy,

//     andy,

//     standy,

//     tom,

//     jarry

//     )

//    )

    

    

    //数组相加 成一个数组

    NSLog(@"%@", [arr arrayByAddingObjectsFromArray:arr1]);

    //运行结果(

//    a,

//    andy,

//    b,

//    c,

//    e,

//    f,

//    wendy,

//    andy,

//    standy,

//    tom,

//    jarry

//    )

    //返回包含本数组范围内元素的新数组

    NSLog(@"%@", [arr subarrayWithRange:range]);

    

    //可变数组定义和常用方法

    NSMutableArray *arr7 = [[NSMutableArray alloc] initWithCapacity:30];

    NSMutableArray *arr8 = [NSMutableArray arrayWithCapacity:30];

    

    //添加元素

    [arr7 addObject:@"123"];

    [arr7 addObject:@"456"];

    [arr7 addObject:@"qeqwe"];

    [arr7 addObject:@"qeqwe"];

    [arr7 addObject:@"qeqwe"];

    

    

    //从其他数组拿出元素添加到本数组

    [arr8 addObjectsFromArray:arr7];

    [arr8 addObject:@"789"];

    [arr8 addObject:@"789"];

    [arr8 addObject:@"789"];

    [arr8 addObject:@"123dsa"];

    [arr8 addObject:@"123dsa"];

    [arr8 addObject:@"123dsa"];

    [arr8 addObject:@"123dsa"];

    

    NSLog(@"arr7 = %@",arr7);

    NSLog(@"arr8 = %@",arr8);

    

    //插入元素

    //插入下标的范围: 0<=index<=count

    [arr7 insertObject:@"aaa" atIndex:0];

    NSLog(@"arr7 = %@",arr7);

    [arr7 insertObject:@"bbb" atIndex:[arr7 count]];

    NSLog(@"arr7 = %@",arr7);

    

    [arr8 removeLastObject];//删除最后一个元素

    NSLog(@"%@", arr8);

    [arr8 removeObject:@"789"];//删除指定对象,会将所有对象删除

    NSLog(@"%@", arr8);

    

    //删除指定范围中的指定对象

    [arr8 removeObject:@"456" inRange:NSMakeRange(0, 2)];

    //删除指定下标的元素

    [arr8 removeObjectAtIndex:0];

    //删除指定范围中得元素

    [arr8 removeObjectsInRange:NSMakeRange(0, 2)];

    [arr8 removeAllObjects];//删除所有元素

    NSLog(@"%@", arr8);

    

 

    //如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单

    //比如要删下标为偶数的 0开始

    

    NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];

    

    for (int i = 0; i < [arr7 count]; i++) {

        

        if (i % 2 == 0) {

            

            [indexs addIndex:i];

        }

        

    }

    //删除清单中得元素

    [arr7 removeObjectsAtIndexes:indexs];

    NSLog(@"%@", arr7);


   // 修改数组中得内容

    [arr7 replaceObjectAtIndex:1 withObject:@"aaa"];

    NSLog(@"%@", arr7);

    

    return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值