1:数组的基本概念

  Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标获取到数组中的

各个元素.与字符串相同,数组也是可变和不可变数组之分.此外,数组中不可以存放基本数组类型,只能存放类的

实例(对象).如若需要将基本数据类型,结构体放入数组中,需要通过NSNumber,NSValue进行数据的“封装”

2:不可变数组-NSArray

  一:数组的初始化

     // 不可变数组的初始化

        NSArray *firstArray=[NSArray arrayWithObject:@"abc"];
        //  多个元素初始化时,注意以nil作为数组的结束
        NSArray *secondArray=[NSArray arrayWithObjects:@"one","two", nil];
        NSArray *thirdArray=[NSArray arrayWithArray:secondArray];
        NSArray *fourArray=[NSArray arrayWithContentsOfFile:@"/apple/user/array.txt"];
  二:获取数组中的元素个数和访问
 
 //获取数组中的元素个数和访问
        int count=[secondArray count];
        NSLog(@"secondArray all element %ld",count);
        NSString *string1=[secondArray objectAtIndex:1];
        NSLog(@"secondArray of element 1 is %@",string1);
三:在原来的数组对象的基础上面,追加对象返回新的数组
 
//追加数组的内容
        NSArray *array5=[secondArray arrayByAddingObject:@"end"];
        NSLog(@"array5 is %@",array5);
四:用指定的字符把数据用字符串形式显示出来
 
// 数组——>字符串
        NSString *string2=[array5 componentsJoinedByString:@","];
        NSLog(@"%@",string2);
五: 查询数组中是否包含指定的对象
  //判断数组中是否存在指定的对象 
        Boolean result=[array5 containsObject:@"two"];
        if(result){
            NSLog(@"存在指定的two");
        }else{
            NSLog(@"不存在");
        }
六:根据指定的对象返回索引下标,返回数组中最后的一个元素
//根据指定的对象返回索引下标,返回数组中最后的一个元素
        NSInteger *index=[array5 indexOfObject:@"two"];
        NSLog(@"index:%ld",index);
        NSString *string3 =[array5 lastObject];
        NSLog(@"%@",string3);
3:可变数组的常用方法(NSMutableArray)
 一:初始化 设定元素个数为5,但可以更改,追加数值对象 
 
 // 初始化,指定数组的个数为5,但是可以更改的
        NSMutableArray *mutableArrray1=[NSMutableArray array];//空的数组
        NSMutableArray *mutableArrray2=[NSMutableArray arrayWithCapacity:5];
        NSMutableArray *mutableArrray3=[NSMutableArray arrayWithObjects:@"one",@"two", nil];
        NSLog(@"%@",mutableArrray3);
        [mutableArrray3 addObject:@"three"];
        NSLog(@"%@",mutableArrray3);
二:向数组中指定下标插入元素
 
        //向数组中指定下标插入元素
        [mutableArrray3 insertObject:@"ccc" atIndex:2];
        NSLog(@"%@",mutableArrray3);
三:移除指定元素,移除最后一个元素,移除指定下标的元素
 
        //移除最后一个元素
        [mutableArrray3 removeLastObject];
        NSLog(@"%@",mutableArrray3);
        //移除指定元素
        [mutableArrray3 removeObject:@"one"];
        //移除指定下标的元素
        [mutableArrray3 removeObjectAtIndex:0];
        NSLog(@"%@",mutableArrray3);
四:向数组中添加数组
  //向数种添加数组 
        NSMutableArray *mutableArray4=[NSMutableArray arrayWithObjects:@"four",@"five", nil];
        [mutableArrray3 addObjectsFromArray:mutableArray4];
        NSLog(@"%@",mutableArrray3);
五:数组中的对象替换
 //数组中的对象替换
        [mutableArrray3 replaceObjectAtIndex:1 withObject:@"4"];
        NSLog(@"%@",mutableArrray3);
3:数组的遍历
 一:常规遍历
 NSArray *array6=[NSMutableArray arrayWithObjects:@"x",@"y",@"z", nil];
        NSInteger size=[array6 count];
        for (NSInteger i=0;i<size; i++) {
            NSString *str=[array6 objectAtIndex:i];
            NSLog(@"%@",str);
          }
二:高效遍历
 //高效遍历
        for (NSString *str in array6) {
           NSLog(@"%@",str);
        }