OC中数组的基本操作

来源:互联网 发布:淘宝买家信誉查询工具 编辑:程序博客网 时间:2024/04/30 09:48

在OC中数组是用来存储对象的容器,只能存储对象。

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {#pragma mark - 不可变数组        //不可变字符串的创立        //初始化方法,以nil为结束标志,并且不可省略        NSArray *initArray1 = [[NSArray alloc] initWithObjects:@"xiaohong", @"xiaohua", @"xiaoming", @"xiaofang", nil];        NSLog(@"initArray1 = %@", initArray1);        //便利构造器方法,以nil为结束标志,并且不可省略        NSArray *initArray2 = [NSArray arrayWithObjects:@"xiaohong", @"xiaohua", @"xiaoming", @"xiaofang", nil];        NSLog(@"initArray2 = %@", initArray2);        //nil为结束标志        NSArray *testNil = [NSArray arrayWithObjects:@"xiaohong", @"xiaohua", nil, @"xiaoming", @"xiaofang", nil];        NSLog(@"testNil = %@", testNil);        //用已有的对象创建        NSString *str1 = @"zhangsan";//对象(也可以是自己定义类的一些内对象)        NSString *str2 = @"lishi";//对象        NSArray *initArray3 = [NSArray arrayWithObjects:str1, str2, nil];        NSLog(@"initArray = %@", initArray3);        //已有数组初始化        NSArray *initArray4 = [[NSArray alloc] initWithArray:initArray1];        NSLog(@"initArray4 = %@", initArray4);        //字面量初始化        NSArray *initArray5 = @[@"xianghong", @"xiaohua", @"xiaoming", @"xiaofang"];        NSLog(@"initArray5 = %@", initArray5);        //功能方法        NSArray *testArray = @[@"xiaohong", @"xiaohua", @"xiaoming", @"xiaofang", @"xiaohong", @"xiaohua", @"xiaohong"];        //获取数组长度(存储的个数)        NSInteger count = [testArray count];        NSLog(@"count = %ld", count);        //下标获取某一个元素        NSString *testStr1 = testArray[0];        NSLog(@"testStr1 = %@", testStr1);        //系统方法获取某一个元素        NSString *testStr2 = [testArray objectAtIndex:0];        NSLog(@"testStr2 = %@", testStr2);        //元素获取下标        //注意:如果数组中存储了多个相同的元素,返回的是第一个元素的下标        NSInteger index = [testArray indexOfObject:@"xiaohong"];        NSLog(@"index = %ld", index);        //在指定范围内获取指定元素的下标        NSRange testRange1 = {1, count - 1};        //如果在指定元素范围里面存储了多个相同的元素,返回的是第一个元素的下标        index = [testArray indexOfObject:@"xiaohua" inRange:testRange1];        NSLog(@"index = %ld", index);        //判断数组中是否包含某一个对象        BOOL flag = [testArray containsObject:@"xiaohua"];        NSLog(@"flag = %d", flag);        flag = [testArray containsObject:@"laowang"];        NSLog(@"flag = %d", flag);        //将数组里面的元素链接成一个新字符串        NSString *newStr = [testArray componentsJoinedByString:@"&&"];        NSLog(@"newStr = %@", newStr);        //利用后面的字符串分隔前面的字符串,返回分隔后的数组        NSArray *newArray = [newStr componentsSeparatedByString:@"&&"];        NSLog(@"newArray = %@", newArray); #pragma mark - 可变数组        //可变数组继承不可变数组        //创建        //预留两个空间,返回首地址        NSMutableArray *mInitArray1 = [[NSMutableArray alloc] initWithCapacity:2];        //字面量定义的字符串数组是不可变的,利用mutableCopy拷贝出一份可变的        //可变指的是数组中指向对象的指针指向可变,对象的内容能否改变需要根据对象的属性确定        mInitArray1 = [@[@"shifu", @"dashixiong", @"ershixiong", @"shashidi"] mutableCopy];        NSLog(@"mInitArray1 = %@", mInitArray1);        //功能方法        //增加一个对象        [mInitArray1 addObject:@"fuzhu"];        NSLog(@"mInitArray1 = %@", mInitArray1);        //增加一个不可变数组        [mInitArray1 addObjectsFromArray:testArray];        NSLog(@"mInitArray1 = %@", mInitArray1);        //插入一个元素(插入在下标前)不能插入一个空的对象        [mInitArray1 insertObject:@"guanying" atIndex:0];        NSLog(@"mInitArray1 = %@", mInitArray1);        //交换元素的位置        [mInitArray1 exchangeObjectAtIndex:1 withObjectAtIndex:3];        NSLog(@"mInitArray1 = %@", mInitArray1);        //替换指定元素        [mInitArray1 replaceObjectAtIndex:2 withObject:@"baigujing"];        NSLog(@"mInitArray1 = %@", mInitArray1);        //删除最后一个元素        [mInitArray1 removeLastObject];        NSLog(@"mInitArray1 = %@", mInitArray1);        //删除下标指定元素        [mInitArray1 removeObjectAtIndex:2];        NSLog(@"mInitArray1 = %@", mInitArray1);        //删除指定(如果数组里面有多个相同的,那么多个相同的一起删除)        [mInitArray1 removeObject:@"xiaohua"];        NSLog(@"mInitArray1 = %@", mInitArray1);        //删除所有元素        [mInitArray1 removeAllObjects];        NSLog(@"mInitArray1 = %@", mInitArray1);        NSLog(@"Hello, World!");    }    return 0;}
1 0