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);
    }

    /*
     使用快速枚舉或枚舉器遍歷時,不要添加或者刪除數組元素,否則運行時就會崩潰
     */

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章