内容简介:知识点:一、NSArray:不可变数组及其使用二、NSMutableArray:可变数组及其使用
知识点:
一、NSArray:不可变数组及其使用
二、NSMutableArray:可变数组及其使用
1.数组的基本用法
2.数组的遍历
3.数组的其他用法
一、数组的简单介绍
1.数组是一个对象,是 任意类型对象地址的集合 ,OC的数组可以存储不同类型的对象
2.OC的数组只能存储对象, 不能存放 简单的数据类型(int, float, NSInteger…)除非通过一些手段把简单数据类型变成对象。在 C语言 中的数组可以保存任意类型的数据。
3.存储的内存是连续的
二、不可变数组
0.定义数组
//定义一个空数组 NSArray *array1 = [NSArray array] ; array1 = @[];//空数组 //通过指定对象创建数组 array1 = [[NSArray alloc]initWithObjects:@"123",@"hello",@"ya",@"yuan",@"zi", nil] ; //通过简单的方式创建数组 array1 = @[@"123",@"hello",@"ya",@"yuan",@"zi"] ;
1.数组的长度
NSInteger count = array1.count ; NSLog(@"%ld",count) ;
2.判断当前的数组中是否包含对应的对象 containsObject
2.判断当前的数组中是否包含对应的对象 containsObject BOOL isHave = [array1 containsObject:@"123"] ; if (isHave) { NSLog(@"存在") ; }else{ NSLog(@"不存在") ; } /* [A isKindOfClass:B],判断A类是否是B的子类或者本类。 [A isMemberOfClass:B],判断A类是否是B类(不包括子类) */
3.得到数组中最后一个对象
NSString *str = [array1 lastObject]; NSLog(@"str=%@",str) ;
4.得到第一个对象
NSString *str1 = [array1 firstObject]; NSLog(@"str1=%@",str1) ;
5.取出数组的指定的对象 (下标要小于数组的count)
NSString *str2 = [array1 objectAtIndex:3] ; NSLog(@"str2=%@",str2) ;
6.得到指定元素在数组中的位置 如果元素不存在则打印-1值
int index = (int)[array1 indexOfObject:@"yayuanzi"] ; int index1 = (int)[array1 indexOfObject:@"ya"] ; NSLog(@"index=%d,index=%d",index,index1) ;
7.数组的遍历–> 查找数组中的每一个元素
7.1 基本的for循环通过下标逐一查找
for (int i = 0; i < array1.count; i++) { NSString *str3 = [array1 objectAtIndex:i] ; NSLog(@"str3 = %@",str3) ; }
7.2 for in 快速遍历 注意:需要让数组中的元素的类型保持一致
for (NSString *str4 in array1) { NSLog(@"str4 = %@",str4) ; }
8.把数组中所有的元素转化为字符串
[array1 componentsJoinedByString:@“两个元素之间添加的字符串”];
9.取出数组中的一部分元素
//只初始化一个索引 NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:2]; //下标为1,长度为2 NSRange range = NSMakeRange(0, 3); //构造一个范围的索引 indexSet = [NSIndexSet indexSetWithIndexesInRange:range]; [array objectsAtIndexes:indexSet];
10.把数组写入文件
[array1 writeToFile:path atomically:YES];
11.从文件中读取数组
[NSArray arrayWithContentsOfFile:path];
三、可变数组
当数据不确定数量或者动态变化的时候就需要使用到可变数组
0.创建空的可变数组
NSMutableArray *mutArray = [[NSMutableArray alloc]init] ; NSMutableArray *mutArray1 = [NSMutableArray array];
1.创建有对象的数组
初始化只能有一个对象
1.初始化只能有一个对象 NSMutableArray arrayWithObject:@"111"]; 2.初始化只能有多个对象 2.1[NSMutableArray arrayWithObjects:@"1111",@"222",@"333",@"4444", nil]; 2.2[[NSMutableArray alloc] initWithObjects:<#(id), ...#>, nil];
2.添加对象 注意下面两种的区别
NSMutableArray *mutArray = [[NSMutableArray alloc]init] ; Person *personName1 = [[Person alloc]initWithName:@"wuhu"] ; Person *personName2 = [[Person alloc]initWithName:@"yayuanzi"] ; Person *personName3 = [[Person alloc]initWithName:@"company"] ; NSArray *arr = [NSArray arrayWithObjects:personName2,personName3, nil] ; //1.添加对象 注意下面两种的区别 [mutArray addObject:personName1] ; NSLog(@"mutArray = %@",mutArray) ; [mutArray addObject:arr] ; //将arr作为一个对象整体添加到数组上 NSLog(@"mutArray = %@",mutArray) ; [mutArray addObjectsFromArray:arr] ; //将arr中的对象,一个一个的加到可变数组中 NSLog(@"mutArray = %@",mutArray) ;
3.交换元素的位置根据下标
[mutArray exchangeObjectAtIndex:1 withObjectAtIndex:2] ;
4.删除元素
//4.1删除所有的元素 [mutArray removeAllObjects] ; //4.2删除最后一个元素 [mutArray removeLastObject] ; //4.3删除指定的元素 [mutArray removeObject:personName3] ; //4.4根据下标来删除 :注意元素内元素的个数下标问题会导致奔溃 [mutArray removeObjectAtIndex:2] ;
参考文章: https://www.cnblogs.com/fcug/p/6279596.html
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25148.html
微信打赏
支付宝打赏
感谢您对作者Annwn的打赏,我们会更加努力! 如果您想成为作者,请点我
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数组常见的遍历循环方法、数组的循环遍历的效率对比
- javascript数组常见的22种方法总结
- JavaScript实现数组去重的常见方式
- C语言指针数组和数组指针
- 数组 – 如何在Swift中将数组拆分成两半?
- 菜鸡的算法修炼:数组(旋转数组的最小数字)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
着陆页:获取网络订单的关键
谢松杰 / 电子工业出版社 / 2017-1-1 / CNY 55.00
着陆页是用户点击广告后看到的第一个页面,是相关产品和服务的商业模式与营销思想的载体,是实现客户转化的关键。本书从“宏观”和“微观”两个层面对着陆页的整体框架和局部细节进行了深入的讨论,既有理论和方法,又有技术与工具,为读者呈现了着陆页从策划到技术实现的完整知识体系,帮助读者用最低的成本实现网站最高的收益。 谢松杰老师作品《网站说服力》版权输出台湾,深受两岸读者喜爱。本书是《网站说服力》的姊妹......一起来看看 《着陆页:获取网络订单的关键》 这本书的介绍吧!