OC学习日记07-数组

数组

这里写图片描述

不可变数组

初始化创建一个数组(NSArray)对象

     NSArray *array1=[[NSArray alloc]init];
        NSArray *array2=[NSArray array];

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

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

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

NSArray *array4=[NSArray arrayWithObjects:@"Rick",@"Jack",@"Leo", nil];

nil 只能出现在数组的最后,不能在数组中间存放nil,因为nil是一个NSArray的数组结束标志。

新语法

 NSArray *array5=@[@"array"];    
 NSArray *array6=@[@"Rick",@"Jack",@"Leo"];
 //[NSNumber numberWithInt:5];

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

NSArray *array7=[NSArray arrayWithArray:array6];
NSLog(@"%@",array7);

从本地里面提取数组文件

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循环)

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

新语法访问数组中元素

        NSString *str2=array6[0];
        NSArray *array10=@[@3,@4,@5];


        //@3 [NSNumber numberWithIndex:3]
        //[NSNumber numberWithIndex:YES];
        //@YES 就是OC中的布尔型的true;

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

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

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

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

向不可变数组拼接一个元素

NSArray *newarray1=[array6 arrayByAddingObject:@"xiangjie"];

向不可变数组拼接一个数组,以及使用分隔符合并数组为字符串和将字符串拆分为数组。

NSArray *newarray2=[array6 arrayByAddingObjectsFromArray:array6];
NSString *string=[newarray2 componentsJoinedByString:@"~.~"];
NSLog(@"%@",string);       
NSArray *array11=@[@"123",@"456",@"789",@"000"];
NSString *string2=[array11 componentsJoinedByString:@"-"];
NSLog(@"%@",string2);        
NSArray *array12=[string2 componentsSeparatedByString:@"-"];
NSLog(@"%@",array12); 
NSString *string3=[array12 componentsJoinedByString:@""];
        NSLog(@"%@",string3);

使用NSArray 注意事项:

    1.数组越界的问题
    2.数组最后一个结束标志为nil,中间不能放nil
    3.数组会对加入其中的对象自动把引用加一,

可变数组

可变数组的定义:

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

初始化方法

初始化一个空数组
     NSMutableArray *array1 =[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:@"www.baidu.com"]];

增加

在数组末尾添加一个元素
     [mArray3 addObject:@"5"];
     NSLog(@"%@",mArray3);
在数组指定位置插入一个元素
[mArray3 insertObject:@"4" atIndex:3];
[mArray3 replaceObjectAtIndex:1 withObject:@"Rick"];
交换
[mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:3];

NSLog(@"%@",mArray3);

删除

删除指定元素
        [mArray3 removeObject:@"1"];
删除指定位置上的元素
        [mArray3 removeObjectAtIndex:1];

        NSLog(@"%@",mArray3);
删除最后一个元素
        [mArray3 removeLastObject];
删除数组内全部元素
        [mArray3 removeAllObjects];

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

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

    //快速枚举  不知道类型时可以把这个类型改成id
    for(NSString *element in newArray){
        NSLog(@"element = %@",element);
    }


    //使用系统提供的枚举类型 NSEnumerator
    //创建一个枚举器
    NSEnumerator *enumerator = [newArray objectEnumerator];
    id obj;
    while (obj =[enumerator nextObject]){
       // [newArray addObject:@"5"];
        NSLog(@"obj=%@\n",obj);
    }

    /*
     使用快速枚举或枚举器遍历时,不要添加或者删除数组元素,否则运行时就会崩溃
     */

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值