OC中关于数组的介绍

数组:按照顺序排列的元素的集合;

数组通过下标即索引取值;

NSArray 里面的元素按顺序排列的数组,在OC中允许在数组里存放不同数据类型的元素,在取值时注意数据类型  尽量存相同数据类型;


#pragma mark ---初始化数组的三种方法----

 /*

// 初始化数组 1.在数组里面存的都是 NSObject 类型的数据,直接给数组赋值,如下:

//        数组里可以盛放任何object数据(字符串,数组),除了基本数据类型

        NSArray *list = @[@"11",@"222",@"33"];//存放的是字符串

    

        Hero *tooHao = [[Hero alloc]init];

        Hero *jChuang = [[Hero alloc]init];

        

        NSArray *list1 = @[tooHao,jChuang];//存放的是对象

//        2.定义空的数组

        NSArray *list2 = [[NSArray alloc]init];//空的数组,可以直接给数组赋值数组

//  3.定义空的数组

        NSArray *list3 = [NSArray array];//空的数组

  

//        3.初始化并且赋值

//        1 初始化 只有一个元素的数组

        NSArray *list = [NSArray arrayWithObject:@".."];

//        (2)初始化 多个元素的数组  {“, nil”  逗号和nil不可省略}

        NSArray *list1 = [NSArray arrayWithObjects:@"",@""... , nil];

  */

        

//        基本数据类型怎么存到 数组

//        NSNumber 把数字类型的变量 包成 NSObject类型

//        ?????数字转 NSNumber ?????

//        **********在存放 数字到数组 的时候,不可以直接存放非 NSObject 类型的数据**********

//        可以把数字转化成 NSNumber类型,如下

/*        int a = 100;

//        NSNumber *num = [[NSNumber alloc]initWithInt:a];或者如下

        NSNumber *num = [NSNumber numberWithInt:a];

        

//        NSNumber类型的缩写 @(要转的数据)

        NSArray *list2 = @[@(a),@(0.98)];

//       或者 NSArray *list2 = @[num];

        

//        1.从数组里取值,根据下标,从0开始

//        NSNumber *num0= list2[0];或者

        int num0 = [list2[0] intValue];

 

 NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];

 

 //        2.通过方法取值objectAtIndex

 //        NSString *s = [list objectAtIndex:0];

 

 for (int i=0; i<list.count; i++) {

 NSLog(@"%@",[list objectAtIndex:i]);

 //            NSLog(@"%@",list[i]);一样

 }

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

 

 //        数组元素是用,隔开的,NSLog的也是这样显示的

 //                         (

 //                           lucy,

 //                           lily,

 //                           lilei,

 //                           hanmeimei

 //                           )

 */

        

 

        

 /*

        NSArray *list = @[@"胜杰",@"景阔",@"威振",@"世申",@"张磊",];

//        取值:数组名【下标】

//        NSString *sb = list[0];

#pragma mark ---获得数组长度即元素个数的属性:count;使用时:数组名.count---

        for (int i=0; i<list.count; i++) {

            NSString *s = list[i];

            NSLog(@"%@",s);

        }

  

#pragma mark ---快速遍历,打个 forin------

        for (元素类名 *对象名 in 数组名) {

            对象名

        }

//        for (NSString *s in list) {

            NSLog(@"%@",s);

//        }

//       */

        

 /**//*

        Hero *h1 = [[Hero alloc]init];

        Hero *h2 = [[Hero alloc]init];

        NSString *list = @[h1,h2];

        

//        for (Hero *h in list) {//这方法是错误的

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

//        }

*/

        


        

#pragma mark 字符串 可以直接通过符号 截取字符串 变为数组;

/*        NSString *content = @"葫芦娃!小明,老王,大黄";

       NSArray *list = [content componentsSeparatedByString:@"!"];

// @"!"只是通过 !把字符串分隔开,!没用,其它所有符号都可以;中英文符号所占的字节数不一样,所以要区分

        for (NSString *s in list) {

            NSLog(@"%@",s);

        }

 */

   

#pragma mark ---数组 里面可以直接通过 符号 转变为 字符串;(没有实现????)

//        NSArray *list = @[@"小明",@"小红",@"小蒙"];

        直接格式化,数组会保持原始形态

//        NSString *s =[NSString stringWithFormat:@"%@",list];

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

        

//     可以使用 componentsJoinedByString加入一个字符串去分割数组里的元素

//        NSString *s = [list componentsJoinedByString:@""];

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

        

#pragma mark ---可变数组——---

        /*

//         NSMutableArray

//        不可直接给 可变数组 赋值,和可变字符串一样,但可以如下:

        NSMutableArray *list = [NSMutableArray arrayWithArray:@[@"",@""]];//也可以用下面方法

//        NSArray *arr = @[@"",@""];

//        NSMutableArray *list = [NSMutableArray arrayWithArray:arr];

    

        

        NSString *s1 = @"";

        NSString *s2 = @"";

        NSMutableString *s = [NSMutableString stringWithFormat:@"%@%@",s1,s2];

      

//        不可变数组里面 所有方法 可变数组都可用

        NSMutableArray *list = [NSMutableArray arrayWithObjects:@"",@"", nil];

         */

        

#pragma mark ---可变数组的增 ----

//        定义一个空数组

//        NSMutableArray *list = [NSMutableArray array];

        

        1.添加元素

//        

//        Hero *hero = [[Hero alloc]init];

//        

        给英雄赋值的过程...

        添加一个object类型的元素

//        [list addObject:hero];

//        NSLog(@"%lu",list.count);

//        [list addObject:hero];

//        NSLog(@"%lu",list.count);

        

//*****有一次alloc init就会创建一个对象

//        for (int i=0; i<10; i++) {

//            Hero *hero = [[Hero alloc]init];

//            [list addObject:hero];

//        }

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

        

        NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy", @"hanmeimei",@"tom",nil];

//        删除指定元素,可以 通过 下标 来删除;

//        [list removeObject:1];

//        删除指定范围的元素

//        NSRange range = {0,2};

//        [list removeObjectsInRange:range];

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

        

//        移除最后一个元素

//        [list removeLastObject];

//        移除全部元素

//        [list removeAllObjects];

        

//        对数组进行 操作 时注意 数组越界

        

//        替换

//        [list replaceObjectAtIndex:2 withObject:@"shengjie"];

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

        

//        通过元素 查找元素所在位置

        NSString *name = @"tom";

//        NSUInteger相当于无符号的int类型,输出格式为 %lu

        

//        通过下标替换一个元素,即查找元素位置

        NSUInteger i = [list indexOfObject:name];

        

        NSLog(@"%lu",i);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值