初识Objecive-C 之 NSArray

一、数组的概述

数组是有序的对象集合。可以通过索引下标获取到数组中的各个元素。数组中不可以存放基本数据类型、结构体,只能存放类的实例对象,如果需要把基本数据类型等放入数组中,就要对其进行封装 NSNumber、NSValue这两个方法封装。 

1、数组的初始化

        //数组的初始化

       NSArray *array1 = [NSArrayarrayWithObject:@"One"];

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

        //注意多个数组对象最后一个以nil结束,当nil在中间时,后面再写也是多余的。

       NSArray *array2 = [NSArrayarrayWithObjects:@"One",@"Two",@"Three",nil];

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

        

       NSArray *array3 = [NSArrayarrayWithArray:array2];

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

        

       NSArray *array4 = [[NSArrayalloc]initWithArray:array2];

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

2、数组的常用方法

        //创建一个数组对象

       NSArray *array0 = [NSArrayarrayWithObjects:@"One",@"Two",@"Three",nil];

        //获取数组中的元素个数

       NSInteger count = [array0count];

       NSLog(@"count=%zi",count);

        //访问数组注意下标不能越界

       NSString *string1 = [array0objectAtIndex:0];

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

        //追加数组中得内容

       NSArray *array5 = [array0arrayByAddingObject:@"Four"];

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

        //判断数组中是否存在一个指定对象

       BOOL isContain = [array5containsObject:@"Four"];

        NSLog(@"isContain=%d",isContain);//如果存在isContain=1,否则反之。

        //返回指定对象的索引下标

       NSInteger index = [array5indexOfObject:@"Four"];

       NSLog(@"index=%zd",index);

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

       NSString *lastObject = [array5lastObject];

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

二、可变数组NSMutableArray

1、创建可变数组及常用方法

        //创建一个可变的数组

       NSMutableArray *mutableArray1 = [NSMutableArrayarrayWithObjects:@"One",@"two",@"Three",@"Four",nil];

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

        //向数组中添加一个元素

        [mutableArray1addObject:@"Five"];

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

        //向数组中指定下标插入元素

        [mutableArray1insertObject:@"six"atIndex:5];

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

        //删除最后一个元素

        [mutableArray1removeLastObject];

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

       //移除指定元素

        [mutableArray1removeObject:@"Five"];

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

        //移除指定元素下标的元素

        [mutableArray1removeObjectAtIndex:0];

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

        //替换指定的下标元素

        [mutableArray1 replaceObjectAtIndex:0withObject:@"ten"];

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

       //移除所有对象

//        [mutableArray1 removeAllObjects];

//        NSLog(@"mutableArray1=%@",mutableArray1);

2、数组练习

    /*

     1、定义一个可变数组mArr

     2、定义三个字符串变量

     3、将字符串依次add到可变数组中,并打印数组内容

     4、remove其中给一个字符串,再次打印数组内容

     */

    NSMutableArray *mArr = [[NSMutableArrayalloc]init];

    NSString *str_1 =@"DiRenjie";

    NSString *str_2 =@"Sherlock Holmes";

    NSString *str_3 =@"Conan";

    //将str_1添加到可变数组mArr

    [mArraddObject:str_1];

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

    //将str_2添加到可变数组mArr

    [mArraddObject:str_2];

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

    //将str_3添加到可变数组mArr

    [mArraddObject:str_3];

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

    //将str_3从可变数组里移除

    //上面一个根据下标删除

    //下面一个根据对象删除

    [mArr removeObjectAtIndex:2];

//    [mArr removeObject:str_3];

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

----------------------------------------

/*

     1、定义三个NSString变量用于存储三个字符串

     2、定义一个NSArray变量,并伴随以上创建的三个字符初始化

     3、对上述生成的NSArray进行forin快速枚举并输出

     */

    

   NSString *str1 =@"元芳";

   NSString *str2 =@"华生";

   NSString *str3 =@"平次";

   NSArray *arr1 = [[NSArrayalloc]initWithObjects:str1,str2,str3,nil];

   for (NSString *objin arr1) {

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

    }

    NSLog(@"++++++");

   for (int index=0; index<[arr1count]; index++) {

       NSString *obj1 = [arr1objectAtIndex:index];

       NSLog(@"obj1=%@",obj1);    }


-------------------------------------------------------------------------------------------------------------------------------------------------------

//取随机数并排序

    /*

     1、定义一个可变数组mArr

     2、在循环体内利用arc4rangom%100+1创建一个1-100内的随机数,用number封装后存入mArr

     3、定义一个NSSortDescriptor排序描述对象,设置排序方式为升序

     4、mArr通过排序描述对象进行排序后输出

     */

    NSMutableArray *mArr = [[NSMutableArrayalloc] init];

   while ([mArr count]<10) {

        [mArr addObject:[NSNumbernumberWithInt:arc4random()%100+1]];

    }

//    NSLog(@"%@",mArr);

    NSSortDescriptor *sd1 = [NSSortDescriptorsortDescriptorWithKey:nilascending:YES];

    //利用描述对象进行排序后输出

    NSArray *arr = [mArrsortedArrayUsingDescriptors:[NSArrayarrayWithObjects:sd1, nil]];

    [mArrrelease];

   for (NSNumber *numin arr) {

       NSLog(@"%d",[numintValue]);

    }




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值