Objective-c的Foundation中常用类3——数组NSArray、NSMutableArray

来源:互联网 发布:科比生涯场均数据 编辑:程序博客网 时间:2024/04/30 22:38

oc中的数组和我们以前学过的c、c++或者是java中的数组还是有很大的区别的

Foundation中的数组是一组有序的对象的集合,数组中不可以存放基本数据类型,只能存放类的实例(对象),如果需要将基本数据类型、结构体存放在数组中,需要先进行封装


NSArray 不可变数组

单一元素初始化

//初始化一个单元素数组        NSArray *array = [NSArray arrayWithObject:@"one"];                NSLog(@"%@",array);                //初始化一个多元素数组,注意和上面的对比多了一个s        NSArray *array2 = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];                NSLog(@"%@",array2);                //初始化一个多元素数组        NSArray *array3 = [[NSArray alloc]initWithObjects:@"you",@"me",@"he",nil];        NSLog(@"%@",array3);                //复制一个数组        NSArray *array4 = [[NSArray alloc]initWithArray:array3];        NSLog(@"%@",array4);                        //获取数组中的元素的个数        NSInteger *count = [array4 count];        NSLog(@"%d",count);//打印   3                //根据下标访问对象        NSString *firstObj = [array4 objectAtIndex:2];        NSLog(@"%@",firstObj);//打印  he

//在原数组的基础上追加对象,并生成一个新的数组

        NSArray *array5 = [array4arrayByAddingObject:@"it"];

        NSLog(@"%@",array5);

//用指定的字符串把数组的元素连接

        NSString *arrayString = [array5componentsJoinedByString:@"/"];

        NSLog(@"%@",arrayString);//打印  you/me/he/it


        

        //数组中是否包含某对象

        BOOL isContain = [array5 containsObject:@"it"];

        NSLog(@"%d",isContain);//打印   1

        

        //查询对象在数组中的位置

        NSInteger *atIndex1 = [array5 indexOfObject:@"it"];

        NSInteger *atIndex2 = [array5 indexOfObject:@"yy"];

        NSLog(@"at   %d",atIndex1);//打印  at   3

        NSLog(@"at   %d",atIndex2);//不存在打印


2、可变数组 NSMutableArray

继承自NSArray,因此可以使用NSArray的所有方法

//向数组中添加一个元素        NSMutableArray *array1 = [NSMutableArray arrayWithObject:@"hello"];        [array1 addObject:@"world"];        NSLog(@"%@",array1);                        //在数组的指定的下标处添加元素        [array1 insertObject:@"nihao" atIndex:0];        NSLog(@"%@",array1);                        //按下标删除元素        [array1 removeObjectAtIndex:0];        NSLog(@"%@",array1);                        //删除最后一个元素        [array1 removeLastObject];        NSLog(@"%@",array1);                //向数组中添加数组        [array1 addObjectsFromArray:array1];        NSLog(@"%@",array1);                        //替换指定位置元素        [array1 replaceObjectAtIndex:1 withObject:@"world"];        NSLog(@"%@",array1);

遍历数组

NSArray *array2 = [NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five", nil];        for(int i=0;i<[array2 count];i++)        {            NSString *element = [array2 objectAtIndex:i];            NSLog(@"%@",element);        }        //方法二,枚举法        for(NSString *element in array2)        {            NSLog(@"%@",element);        }        





原创粉丝点击