OC当中数组的用法

数组里存放的一定是对象

不可变数组

定义方法: NSArray *arr = [[NSArray alloc] init];

便利构造器:NSArray *arr = [NSArray array];

注意:定义的不可变空数组没有使用意义



赋初值方式:字面量方式

指令:NSArray *arr = @[@"1", @"2"];



取值方式:

指令:NSLog(@"%@", [arr objectAtIndex:1])

或者:NSLog(@"%@", arr[1])



遍历方式:

指令:for (NSInteger i = 0; i < arr.count; i++) {

         NSLog(@"%@", arr[i]); }

注意:arr.count指令是数组长度的意思



具体的数组使用方法

1:判断一个元素是否在数组中

指令:NSLog(@"%d", [arrcontainsObject:@"6"]);

注意:该指令的头文件是BOOL类型返回值只有0和1所以用%d来接收,意思为6是否在arr中



遍历方法:

有一个数组:NSArray *arr = @[@"", @"", @"", @"", @"fd"];

输出方式:NSLog(@"%@", arr);

注意:这种输出方式是错误的,因为打印汉字的时候直接打印是打印不出来的而英文可以,



(1)快速枚举法

指令:for (NSString *str in arr) {

            NSLog(@"%@", str);}

注意:能快速的遍历数组等容器(数组,字典,集合)对象

        为了增加代码的阅读性,避免不必要的错误,尽量让forin的前部分的类型和数组里元素类型相同



数组的嵌套

格式:NSArray *arr1 = @[@"", @"", @"", @"", @"fd", @"123", @"1.23"];

        NSArray *arr2 = @[@"赵大", @"钱二", @"孙三", @"李四", @"UFO", @"123", @"1.23"];

       NSArray *arr = @[arr1, arr2];//嵌套(用一个大的数组,装下两个小的数组)


遍历嵌套数组

指令:for (NSArray *temp in arr) {//先对arr进行循环 arr当中的元素是数组,所以第一个参数是NSArray

                for (NSString *str in temp){// arr当中的arr1arr2进行遍历,因为arr1arr2种的元素都为字符串所以第一个参数是NSString;

                        NSLog(@"%@", str);}}(双层forin);



可变数组

(个人理解):不可变数组效率很高, 但是在使用的时候不可变数组的应用范围很广泛,而且不需要频繁的定义数组,数组在使用之前一定要先创建,先初始化

定义方法:

普通方法:NSMutableArray *arr = [[NSMutableArray alloc] init];

便利构造器:NSMutableArray *arr1 = [NSMutableArray array];



1:可变和不可变数组之间的切换:

先定义:NSArray *arr =@[@"1",@"2", @"3"];(不可变数组);

转换指令:NSMutableArray *muArr = [NSMutableArrayarrayWithArray:arr];



先定义如下数组:

NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"4", nil];(以下命令均以该数组为准)


2:添加一个字符串

指令:[arr insertObject:@"7" atIndex:2];

结果:1, 2, 7, 3, 4


3:移除下标2的字符串

指令:[arrremoveObjectAtIndex:2];

结果:1, 2, 4



4:插入一个字符串

指令:[arr insertObject:@"6" atIndex:1];

结果:1, 6, 2, 3, 4



5:替换一个字符串

指令:[arr replaceObjectAtIndex:0 withObject:@"10"];

结果:10, 2, 3, 4



6:交换两个字符串

指令:[arr exchangeObjectAtIndex:1 withObjectAtIndex:3];

结果:1, 4, 3, 2



7:清空数组

指令:[arr removeAllObjects];

结果(        )



8:通过数组元素找到对应的下标

指令:[arr indexOfObject:"对应的元素"]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值