天天看點

Object-C 數組

//統計數組個數 //c 中的方法sizeof(a) /sizeof(a[0]);

NSLog(@"len = %ld",[arr count]);
           

// 根據給定的元素求出對應的下标 indexOfObject

NSLog(@"%ld",[arr indexOfObject:@"003" ]);
           

// 根據給定的下标求出對應的元素;

NSLog(@"%@",[arr objectAtIndex:2]);
           

//判斷在數組中是否包含給定的元素 containsObject

bool vavl = [arr containsObject:@"003"];
    if (vavl) {
        NSLog(@"包含");
    }
           

**

周遊數組

**

// 下标法

for(NSInteger i = 0;i < [arr count];i++)
    {
        NSLog(@"%@",arr[i]);
    }
           

//快速

//id 是個通用類型指針
    for (id obj in arr) {
        NSLog(@"%@",obj);
    }
           

//枚舉器法

//首先是從數組中取出對像放在枚舉器中
    NSEnumerator *rato = [arr objectEnumerator];
    id obj1 = nil;
     //循環的取出枚舉器中的對像
    while (obj1 = [rato nextObject]) {
        NSLog(@"%@",obj1);
    }
           

**

增删改查

**

NSArray *arr = @[@"001",@"002"];
   //對像方法
    NSMutableArray *arr1 = [[NSMutableArray alloc] initWithArray:arr];
    NSMutableArray *arr2 = [[NSMutableArray alloc] initWithObjects:@"001",@"002",@"003",nil];
    //建立一個空的可變字元串
    NSMutableArray *arr3 = [[NSMutableArray alloc] init];
    //可變數組繼承不可變數組的方法,但是不能直接指派
           

//增

[arr1 addObject:@"004"];//一次添加一個
    [arr1 addObjectsFromArray:@[@"005",@"006"]];//數組當中添加數組
    [arr1 insertObject:@"008" atIndex:2];//在指定的位置 添加元素時,下标不能超過最大下标值
           

//删除

[arr1 removeObject:@"009"];
    // 删除指定範圍的元素
    [arr1 removeObject:@"001" inRange:NSMakeRange(0, [arr1 count])];
    //删除指定下标的元素
    [arr1 removeObjectAtIndex:2];
    //删除最後一個元素
    [arr1 removeLastObject];
    //删除全部元素
    [arr1 removeAllObjects];
           

//改

[arr1 replaceObjectAtIndex:2 withObject:@"009"];
    NSLog(@"%@",arr1);
           

//将數組逆序

NSInteger count = [arr count];
    for (NSInteger i = 0; i < count / 2; i++) {
        [arr exchangeObjectAtIndex:i withObjectAtIndex:count - i - 1 ];
    }
           

//字元串分割

NSString *str = @"ywhen i was young,i like a girlu";
    //componentsSeparatedByString 傳入的參數是以哪個子串做為分割點
    NSArray *arr = [str componentsSeparatedByString:@"you"];
    NSLog(@"%@",arr);

    //以字元串作為字元集執行個體化字元集的對象
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"you"];
    arr = [str componentsSeparatedByCharactersInSet:set];
    //原字元串中,首位置,以及比對到的地方,都是以空串輸出
    NSLog(@"%@",arr);

    //删除空串
    NSMutableArray *arr1 = [[NSMutableArray alloc]initWithArray:arr];
    [arr1 removeObject:@""];//@" "表示空串
    NSLog(@"%@",arr1);

    //字元串拼接
    NSArray *arr2 = @[@"I",@"love",@"china"];
    NSString *str1 = [arr2 componentsJoinedByString:@" "];
    NSLog(@"%@",str1);
           

總結:

// 數組中元素全部是指針對象(位址)

// 不管類型 ,隻要是指針對像就可以放到數組中去 c 要求是同一類型

// NSNull 空指針對像類,在數組中占一個占位符

// 可變數組中,删除一個下标會自動往前移動一個

本文要是幫到你,希望點個贊哦O(∩_∩)O哈哈~!