OC语言学习04-数组

来源:互联网 发布:gameloft java游戏 编辑:程序博客网 时间:2024/06/02 04:50

#import <Foundation/Foundation.h>


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

//OC中的数组是对象的有序集合

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

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

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

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


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

    @autoreleasepool {

        

        NSArray *array1 =@[@"one",@"two", @"three", [NSNumbernumberWithInt:456]];

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

        //数组的创建及初始化

        NSArray *array2 = [[NSArrayalloc] init];

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

        

        NSArray *array3 = [[NSArrayalloc] initWithObjects:@"four",@"five", @"six",nil ];

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

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

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

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

        

        NSArray *array5 = [[NSArrayalloc] initWithArray:array3copyItems:YES];

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

        

        //常用的类方法;

        //通过类方法创建一个空数组对象;

        NSArray *array6 = [NSArrayarray];

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

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

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

        NSArray *array8 = [NSArrayarrayWithArray:array7];

        //创建一个数组对象

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

        

        

        //数组元素的访问

        //获取数组元素的个数

        NSInteger count = [array1count];

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

        

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

        id obj1 = [array1objectAtIndex:2];

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

        //使用C语言中下标访问

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

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

        NSInteger index = [array1indexOfObject:@"three"];

        NSLog(@"%li", index);

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

        NSLog(@"第一个元素 = %@", [array3 firstObject]);

        NSLog(@"最后一个元素 = %@", [array3 lastObject]);

        

        //数组的比较

        NSArray *array10 =@[@"D",@"C", @"B",@"A"];

        NSArray *array11 = [NSArrayarrayWithObjects:@"one",@"two",@"three",nil];

        BOOL ret = [array10isEqualToArray:array11];

        if(ret ==YES) {

            NSLog(@"相等");

        }

        else {

            NSLog(@"不相等");

        }

        

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

        id obj2 = [array10firstObjectCommonWithArray:array11];

        NSLog(@"%@",obj2);

        

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

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

        //- (NSArray<ObjectType> *)sortedArrayUsingSelector:(SEL)comparator;

        //@selector生成选择器

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

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

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

        

        

    }

    return0;

}

原创粉丝点击