内容简介:知识点:一、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中将数组拆分成两半?
- 菜鸡的算法修炼:数组(旋转数组的最小数字)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hacking Growth
Sean Ellis、Morgan Brown / Crown Business / 2017-4-25 / USD 29.00
The definitive playbook by the pioneers of Growth Hacking, one of the hottest business methodologies in Silicon Valley and beyond. It seems hard to believe today, but there was a time when Airbnb w......一起来看看 《Hacking Growth》 这本书的介绍吧!