OC学习----可变数组与不可变数组

NSArray / NSMutableArray

在OC中,我们用 NSArray 类和 NSMutableArray 类来表示数组.其中, NSArray 类是 NSMutableArray 类的父类.在OC中,我们的数组是有序的 对象 的集合,即我们的数组只能存储 对象.在OC中我们的数组中元素类型不能是 int,float,CGPoint等类型.

NSArray(不可变数组)

1.初始化方法

    //创建一个空不不可变的数组
    NSArray *ary1 = [[NSArray alloc] init];
    NSArray *ary2 = [NSArray array];
    //创建一个里面只有一个元素的不可变数组
    NSArray *ary3 = [NSArray arrayWithObject:@"abcdefg"];
    //创建一个里面有多个元素的不可变数组
    NSArray *ary4 = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",nil];
    //新语法
    NSArray *ary5 = @[@"abcdefg"];//与3等价
    NSArray *ary6 = @[@"aa",@"bb",@"cc",@"dd"];//与4等价
    NSArray *ary7 = [NSArray arrayWithArray:ary2];
    //从本地文件中读取数组
    NSArray *ary8 = [NSArray arrayWithContentsOfFile:@""];
    //从网络文件中读取数组
    NSArray *ary9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];

2.数组元素个数

    NSUInteger count = ary6.count;

3.访问数组元素

    //访问ary6中的第一个元素
    NSString *str = [ary6 objectAtIndex:0];
    for (int i = 0; i < ary6.count; i++) {
        NSLog(@"数组中第%d个元素为:%@",i,[ary6 objectAtIndex:i]);
    }

4.通过数组中的元素找对应的下标

    NSUInteger index = [ary6 indexOfObject:@"aa"];
    NSLog(@"index = %lu",(unsigned long)index);

5.判断数组中是否存在某上元素

    BOOL flag = [ary6 containsObject:@"bb"];

6.向不可变数组中增加一个元素,生成一个新的数组

    NSArray *newAry = [ary6 arrayByAddingObject:@"ee"];
    NSArray *newAry1 = [ary6 arrayByAddingObjectsFromArray:ary6];
    NSString *string = [newAry componentsJoinedByString:@","];
    NSArray *array = @[@"123",@"456",@"789",@"000"];
    NSString *string1 = [array componentsJoinedByString:@"-"];
    NSLog(@"%@",string1);

    NSArray *array1 = [string1 componentsSeparatedByString:@"-"];
    NSLog(@"array = %@",array1);

    NSString *string2 = [array1 componentsJoinedByString:@""];
    NSLog(@"%@",string2);
NSMutableArray(可变数组)
`NSMutableArray` 为 `NSArray` 的子类.

1.初始化方法

    //初始化一个空的可变数组
    NSMutableArray *mArray1 = [NSMutableArray array];
    NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
    NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
    NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray2];
    //可变数组独有的初始化方法
    NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];

    NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
    NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:@""];

2.增加元素

    //在数组的末尾增加一个元素
    [mArray3 addObject:@"5"];
    //在数组的指定位置增加一个元素
    [mArray3 insertObject:@"yanshuxin" atIndex:3];

3.元素替换

    //将数组指定位置上的元素替换成用户想要的元素
    [mArray3 replaceObjectAtIndex:2 withObject:@"sb"];

4.元素交换

    [mArray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];

5.删除元素

    //删除指定元素
    [mArray3 removeObject:@"1"];
    //删除指定位置上的元素
    [mArray3 removeObjectAtIndex:2];
    //删除数组中最后一个元素
    [mArray3 removeLastObject];
    //删除所有元素
    [mArray3 removeAllObjects];

6.快速遍历

    //for(类型 对象 in 集合)
    for (NSString *ele in mArray3) {
        NSLog(@"ele = %@",ele);
    }
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值