objective-c 学习 数组

来源:互联网 发布:数据维护工程师 编辑:程序博客网 时间:2024/05/01 01:29

概述:

  1. OC里面的数组是一种线性结构数据类型,在foundation框架之内。分为可变数组(NSArray)与不可变数组(NSMultiArray),其中MultiArray 继承自 NSArray  ,所以NSArray的各种方法,NSMultiArray一样可以使用。
  2. 数组可以通过下标索引到相应的对象。
  3. NSarray和NSmultiArray里面存储的内容只能是——对象(类的实例) 。所以基本数据类型不能直接存储进去,可以使用NSValue或者NSNumber封装存储进去

数组数据模型:

  1. OC里面的数组是一种线性的数据结构,它的数据原型是线性表.下图展示了线性表的抽象数据类型(定义+操作)
  2. 操作有8种:大约是:增删查改 始数找空

数组的常见操作

IOS中的数组,是线性表这个抽象数据结构的一种具象的实现,下面就展示一下苹果公司的程序员们如何实现这个线性结构的。

1初始化:(初始化操作,建立一个数组对象,并且赋值)

1 类方法初始化:(这里注意一下苹果的命名规范,类方法一般是 classWith ,命名规范其实很重要),这里有四种情况:分别是一个对象,多个对象,使用数组,从文件 初始化

        // 类方法命名规范        // 初始化一个  因为是不可变的 所以实用性不强        NSArray *arr1=[NSArray arrayWithObject:@"hello"];                //多个以nil作为数组的结束        NSArray *arr2=[NSArray arrayWithObjects:@"1",@"2", nil];        // 元素指向了同一个位置        NSArray *arr3=[NSArray arrayWithArray:arr2];        // 从文件初始化数组//        NSArray *arr3=[NSArray arrayWithContentsOfURL:<#(NSURL *)#>];


2 实例方法初始化:

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

3 可变数组的初始化

        // 添加了一个空的数组        NSMutableArray *mulArray1=[NSMutableArray array];        // 初始化,加上容量        NSMutableArray *mulArray=[NSMutableArray arrayWithCapacity:1];


2 数组长度:(返回数组元素个数)

        // 元素个数        int count=[arr2 count];

3 查:将数组第i个对象返回,

        // 访问哪个元素        NSString *string1=[arr1 objectAtIndex:0];

        // 查找最后一个对象        NSLog(@"%@",[arr2 lastObject]);

遍历

        // 快速遍历        for(/*或者ID*/NSString *string in mulArray)        {                    }


4 找:根据对象,查找数组,如果存在相同的对象,返回序号,否则返回false

// 查询对象位置        int objIndex=[arr2 indexOfObject:@"2"];

        // 判断是否有这个元素  这个是判断有没有        if(![arr2 containsObject:@"a"])           {               NSLog(@"没有");           }

5 增:在第i个位置增加元素

        // 追加对象,返回新的数组        NSArray *arr11=[arr1 arrayByAddingObject:@"haha"];

不可变数组无法对数组进行修改,这里的操作都是可变数组的,
        // 添加对象        for(int i=0;i<20;i++)        {            [mulArray addObject:@"aaa"];            [mulArray addObject:@"bbb"];        }        // 根据索引位置添加一个元素        [mulArray insertObject:@"bbb" atIndex:1];


6 删:删除指定位置元素


        // 删除        // 删除最后一个        [mulArray removeLastObject];        // 删除相应元素        [mulArray removeObject:@"aaa"];        // 指定坐标删除        [mulArray removeObjectAtIndex:3];                // 根据数组来删除        [mulArray removeObjectsInArray:arr1];




7 改:修改指定位置元素(就是替换)

        // 替换        [mulArray replaceObjectAtIndex:0 withObject:@"1"];


8 空: 判空,返回true false 

IOS中没有数组判空操作,你可以用count==0来判断


欢迎转载,转载请注明出处:http://blog.csdn.net/zhenggaoxing/article/details/43559869
本系列博文目录:objective-c 学习系列目录 不定时更新






2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果换id通讯录没有了怎么办 华为p7 更新重启怎么办 打电话的图标没了怎么办 苹果手机wifi信号弱怎么办 没电脑想装wifi怎么办 阿巴町手表二维码丢了怎么办 儿童手表二维码丢了怎么办 电话手表二维码丢了怎么办 360儿童手表二维码丢了怎么办 喜书郎电话手表二维码丢了怎么办 微信充话费充错号码怎么办 话费冲到了副卡怎么办 冲话费冲错了怎么办 微信支付未到账怎么办 速卖通修补配件到国外怎么办 速卖通流量低怎么办 速卖通被判定重复铺货怎么办 拼多多商品降权怎么办 运满满有了差评怎么办 房贷款还清后该怎么办 身份证被偷了怎么办啊 苹果手机wifi速度慢怎么办 电脑桌面上的图标不见了怎么办 夏天手机没地方放怎么办 上班手机没地方放怎么办 京东退款未到账怎么办 京东退款失败后怎么办 在京东申请退款怎么办 微信退款没收到钱怎么办 在拼多多不发货怎么办 扫二维码群发微信骗局怎么办 电脑高清晰音频管理器打不开怎么办 吃鸡耳机有杂音怎么办 分期付款车被朋友卖了怎么办 网上购物付款显示繁忙怎么办 同行招牌高于我的招牌怎么办 拼多多刷手退款怎么办 网银卡在手机上卸载了怎么办 企业网银密码忘了怎么办 网银钱转错了怎么办 民生百货购物卡过期了怎么办