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

来源:互联网 发布:苹果手机java编程软件 编辑:程序博客网 时间:2024/05/29 11:13



#import <Foundation/Foundation.h>

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


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

  

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

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

    

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

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

    

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

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

   NSLog(@"%@", arr2);

    

    //C数组转化OC数组

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

   NSArray *arr3 = [[NSArrayalloc] initWithObjects:carrcount:3];

   NSLog(@"%@", arr3);

    

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

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

    

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

   NSRange range = {0,3};

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

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

    

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

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

    //返回数组中元素个数

   NSLog(@"%ld", [arrcount]);

    //数组中的第一个元素

   NSLog(@"%@", [arr3firstObject]);

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

   NSLog(@"%@", [arr3lastObject]);

    

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

   NSRange range1 = {0,1};

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

    

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

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

    

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

    //自定义初始化下标

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

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

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

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

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

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

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

    

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

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

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

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

    //数组相加

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

    //运行结果  (

//    a,

//    andy,

//    b,

//    c,

//    e,

//    f,

//    (

//     wendy,

//     andy,

//     standy,

//     tom,

//     jarry

//     )

//    )

    

    

    //数组相加成一个数组

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

    //运行结果(

//    a,

//    andy,

//    b,

//    c,

//    e,

//    f,

//    wendy,

//    andy,

//    standy,

//    tom,

//    jarry

//    )

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

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

    

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

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

    NSMutableArray *arr8 = [NSMutableArrayarrayWithCapacity:30];

    

    //添加元素

    [arr7addObject:@"123"];

    [arr7addObject:@"456"];

    [arr7addObject:@"qeqwe"];

    [arr7addObject:@"qeqwe"];

    [arr7addObject:@"qeqwe"];

    

    

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

    [arr8 addObjectsFromArray:arr7];

    [arr8addObject:@"789"];

    [arr8addObject:@"789"];

    [arr8addObject:@"789"];

    [arr8addObject:@"123dsa"];

    [arr8addObject:@"123dsa"];

    [arr8addObject:@"123dsa"];

    [arr8addObject:@"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 = [NSMutableIndexSetindexSet];

    

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

        

       if (i % 2 ==0) {

            

            [indexsaddIndex:i];

        }

        

    }

    //删除清单中得元素

    [arr7 removeObjectsAtIndexes:indexs];

   NSLog(@"%@", arr7);


   //修改数组中得内容

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

   NSLog(@"%@", arr7);

    

   return 0;

}

0 0