OC_数组(可变、不可变)

不可变数组 NSArray

初始化NSArray

    NSArray *array1 = [[NSArray alloc]init];
    NSArray *array2 =  [NSArray array];//类方法

//创建一个里面有一个元素的不可变数组

    NSArray *array3 = [NSArray arrayWithObject:@"Leee"];



    NSArray *array4 = [NSArray arrayWithObjects:@"Leee",@"axiba",@"Leo", nil];
    //nil 只能出线在数组的最后,不能在数组中间存放nil,因为nil是一个NSArray的结束标志.

//新语法

    NSArray *array5 = @[@"Leeee"];
    NSArray *array6 = @[@5,@"Leee",@"sb",@"???"];
    //@5 相当于[NSNumber numberWithInt:5]

//根据一个数组产生新的数组

    NSArray *array7 = [NSArray arrayWithArray:array6];

//从本地读取数组文件

    NSArray *array8 = [NSArray arrayWithContentsOfFile:@""];


    NSArray *array9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];

//数组中元素个数

    NSUInteger count = [array6 count];

//数组的操作
//访问数组中的元素
//数组里面每一个东西都必须是对象
//访问array6中的第一个元素

NSString *str1 = [array6 objectAtIndex:0];//返回一个字符串

for (int i =0 ; i < 3;i++ ) {

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

//新语法访问数组中元素

NSString *str2 = array6[0]; 
NSArray *array10 = @[@3,@4,@5];
//@3     [NSNumber numberWithInteger:3];
//@YES [NSNumber numberWithBool:YES];

//通过数组中国年的元素查找下标

NSUInteger index = [array6 indexOfObject:@"Leee"];
NSLog(@"index = %lu",index);

//判断数组中是否存在某元素

if ([array6 containsObject:@"RICK"]){
        NSLog(@"不包含此元素");
    }

//向不可变数组增加一个元素

NSArray *newArray1 = [array6 arrayByAddingObject:@"urmamaboom"];

//在后面在给它加东西

NSArray *newArray2 = [array6 arrayByAddingObjectsFromArray:array6];

//拼接

NSString *string = [newArray2 componentsJoinedByString:@"^.^"];
NSLog(@"%@",string);

NSArray *array11 = @[@"123",@"456",@"789",@"000"];
NSString *string1 = [array11 componentsJoinedByString:@"-"];

NSArray *array12 = [string1 componentsSeparatedByString:@"-"];

NSString *string2 = [array12 componentsJoinedByString:@""];

/*
  使用NSArray 注意事项
    1.数组越界
    2.不能在数组中间存放nil,nil 是数组结束标志
    3.数组会对加入其中的对象自动把引用加一。
*/

可变数组 NSMutableArray

可变数组 NSMutableArray,它是NSArray 的子类

//初始化方法
//初始化一个空的数组

    NSMutableArray *mArray1 = [NSMutableArray array];

//初始化一个里面有一个元素的数组

    NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];

//创建一个里面有多个元素的数组

    NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

//根据一个数组去创建一个新的数组

    NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray3];

//可变数组独有的初始化方法

    NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];

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

    NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];

//增加一个元素
//在数组末尾添加一个元素(直接在末尾添加 不用返回一个新的数组)

    [mArray3 addObject:@"sb"];

//在数组指定位置插入一个元素

    [mArray3 insertObject:@"4" atIndex:3];

//替换,将数组指定位置上的元素替换成用户想要的元素;

    [mArray3 replaceObjectAtIndex:1 withObject:@"Rick"];

//交换,将数组指定位置上的两个元素交换位置

    [mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:4];

//删
//删除指定元素

    [mArray3 removeObject:@"1"];

//删除指定位置上的元素

    [mArray3 removeObjectAtIndex:2];

//删除数组中最后一个元素

    [mArray3 removeLastObject];

    [mArray3 removeAllObjects];

    NSMutableArray *newMArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

    for (int i=0;i < newMArray.count;i++){
        NSLog(@"%@",newMArray[i]);
    }

    NSLog(@"--------");

//快速枚举

    for (id element in newMArray){
        NSLog(@"element = %@",element);
    }

//使用系统提供的枚举类型 NSEnumerator

    NSEnumerator *enumerator = [newMArray objectEnumerator];
    id obj;
    while (obj= [enumerator nextObject]) {

//使用枚举器遍历数据元素期间,不能增加或删除数组元素,数组元素个数就会前后不一致出现异常/
NSLog(@”%@\n”,obj);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值