数组的创建及操作

#import

//NSArry 创建不可变数组对象

//数组就是对象的有序集合

//数组存储的是对象的地址(对象的引用)

//不可变数组一旦被创建,不可以继续添加、删除或者修改

//数组中元素可以为不同类型对象

//数组的访问通过数组的下标访问,下标从0开始

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSArray *array1 = @[@"one", @"two", @"there",[NSNumber numberWithInt:123]];

        NSLog(@"array1 = %@", array1);

        //数组的创建及初始化

        //创建空数组对象

        NSArray *array2 = [[NSArray alloc] init];

        NSLog(@"array2 = %@", array2);

        

        //通过传入数组元素创建数组对象

        NSArray *array3 = [[NSArray alloc] initWithObjects:@"four", @"five", @"six",nil];//nil表示数组的结束

        NSLog(@"array3 = %@", array3);

        

        //通过传入的数组创建数组对象

        NSArray *array4 = [[NSArray alloc] initWithArray:array1];

        NSLog(@"array4 = %@", array4);

        NSArray *array5 = [[NSArray alloc] initWithArray:array4 copyItems:YES];

        NSLog(@"array5 = %@", array5);

        

        //类方法创建空的数组对象

        NSArray *array6 = [NSArray array];

        NSLog(@"array6 = %@", array6);

        

        //类方法通过传入数组元素创建数组对象

        NSArray *array7 = [NSArray arrayWithObjects:@"seven", @"eight", @"nine",nil];

        NSLog(@"array7 = %@", array7);

        

        //通过传入的数组对象创建数组

        NSArray *array8 = [NSArray arrayWithArray:array7];

        NSLog(@"array8 = %@", array8);

        

        //创建一个元素的数组对象

        NSArray *array9 = [NSArray arrayWithObject:@"ten"];

        NSLog(@"array9 = %@", array9);

        

        //数组元素的访问

        //获取数组元素的个数

        NSInteger count = [array1 count];

        NSLog(@"count = %li", count);

        

        //获取指定索引位置的对象

        id obj1 = [array1 objectAtIndex:2];

        NSLog(@"obj1 = %@", obj1);

        NSLog(@"obj1 = %@", array1[2]);

        

        //获取数组元素在数组中第一次出现的位置

        NSInteger index = [array1 indexOfObject:@"two"];

        NSLog(@"index = %li", index);

        

        //获取数组中最后一个元素

        NSLog(@"lastobject = %@", [array1 lastObject]);

        //获取数组中第一个元素

        NSLog(@"firstobject = %@", [array1 firstObject]);

        

        //数组的比较

        

        NSArray *array10 = @[@"one", @"two", @"there"];

        NSArray *array11 = [NSArray arrayWithObjects:@"one", @"two", @"there",nil];

        

        //判断数组是否相等

        BOOL ret = [array10 isEqualToArray:array11];

        if (ret == YES) {

            NSLog(@"array10 == array11");

        }

        else{

            NSLog(@"array10 != array11");

        }

        

        //返回两个数组中第一个相等的元素

        id obj2 = [array10 firstObjectCommonWithArray:array11];

        NSLog(@"obj2 = %@", obj2);

        

        //数组的排序

        //通常排序的数组中的元素是相同类型

        //通常排序后的数组默认都是从小到大的顺序

        

        NSArray *array12 = @[@"one", @"two", @"three", @"four"];

        //- (NSArray *)sortedArrayUsingSelector:(SEL)comparator;

        //@selector 生成选择器

        //规则方法的返回值为>0的数的时候,底层会交换两个数组元素位置

        NSArray *sortArray = [array12 sortedArrayUsingSelector:@selector(compare:)];

        

        NSLog(@"sortArray = %@", sortArray);

        

        

    }

    return 0;

}

 

你可能感兴趣的:(iOS开发)