ios基础教程之常见的数组使用方法
一、数组的简单介绍
1.数组是一个对象,是任意类型对象地址的集合,OC的数组可以存储不同类型的对象
2.OC的数组只能存储对象,不能存放简单的数据类型(int,float,NSInteger…)除非通过一些手段把简单数据类型变成对象。在C语言中的数组可以保存任意类型的数据。
3.存储的内存是连续的
二、不可变数组
0.定义数组
//定义一个空数组 NSArray*array1=[NSArrayarray]; array1=@[];//空数组 //通过指定对象创建数组 array1=[[NSArrayalloc]initWithObjects:@"123",@"hello",@"ya",@"yuan",@"zi",nil]; //通过简单的方式创建数组 array1=@[@"123",@"hello",@"ya",@"yuan",@"zi"];
1.数组的长度
NSIntegercount=array1.count; NSLog(@"%ld",count);
2.判断当前的数组中是否包含对应的对象containsObject
BOOLisHave=[array1containsObject:@"123"]; if(isHave){ NSLog(@"存在"); }else{ NSLog(@"不存在"); } /* [AisKindOfClass:B],判断A类是否是B的子类或者本类。 [AisMemberOfClass:B],判断A类是否是B类(不包括子类) */
3.得到数组中最后一个对象
NSString*str=[array1lastObject]; NSLog(@"str=%@",str);
4.得到第一个对象
NSString*str1=[array1firstObject]; NSLog(@"str1=%@",str1);
5.取出数组的指定的对象(下标要小于数组的count)
NSString*str2=[array1objectAtIndex:3]; NSLog(@"str2=%@",str2);
6.得到指定元素在数组中的位置如果元素不存在则打印-1值
intindex=(int)[array1indexOfObject:@"yayuanzi"]; intindex1=(int)[array1indexOfObject:@"ya"]; NSLog(@"index=%d,index=%d",index,index1);
7.数组的遍历–>查找数组中的每一个元素
7.1基本的for循环通过下标逐一查找
for(inti=0;i7.2forin快速遍历注意:需要让数组中的元素的类型保持一致
for(NSString*str4inarray1){ NSLog(@"str4=%@",str4); }8.把数组中所有的元素转化为字符串
[array1componentsJoinedByString:@“两个元素之间添加的字符串”];9.取出数组中的一部分元素
//只初始化一个索引 NSIndexSet*indexSet=[NSIndexSetindexSetWithIndex:2]; //下标为1,长度为2 NSRangerange=NSMakeRange(0,3); //构造一个范围的索引 indexSet=[NSIndexSetindexSetWithIndexesInRange:range]; [arrayobjectsAtIndexes:indexSet];10.把数组写入文件
[array1writeToFile:pathatomically:YES];11.从文件中读取数组
[NSArrayarrayWithContentsOfFile:path];三、可变数组
当数据不确定数量或者动态变化的时候就需要使用到可变数组
0.创建空的可变数组
NSMutableArray*mutArray=[[NSMutableArrayalloc]init]; NSMutableArray*mutArray1=[NSMutableArrayarray];1.创建有对象的数组
1.初始化只能有一个对象
NSMutableArrayarrayWithObject:@"111"];
2.初始化只能有多个对象
2.1[NSMutableArrayarrayWithObjects:@"1111",@"222",@"333",@"4444",nil];
2.2[[NSMutableArrayalloc]initWithObjects:<#(id),...#>,nil];2.添加对象注意下面两种的区别
NSMutableArray*mutArray=[[NSMutableArrayalloc]init]; Person*personName1=[[Personalloc]initWithName:@"wuhu"]; Person*personName2=[[Personalloc]initWithName:@"yayuanzi"]; Person*personName3=[[Personalloc]initWithName:@"company"]; NSArray*arr=[NSArrayarrayWithObjects:personName2,personName3,nil]; //1.添加对象注意下面两种的区别 [mutArrayaddObject:personName1]; NSLog(@"mutArray=%@",mutArray); [mutArrayaddObject:arr];//将arr作为一个对象整体添加到数组上 NSLog(@"mutArray=%@",mutArray); [mutArrayaddObjectsFromArray:arr];//将arr中的对象,一个一个的加到可变数组中 NSLog(@"mutArray=%@",mutArray);3.交换元素的位置根据下标
[mutArrayexchangeObjectAtIndex:1withObjectAtIndex:2];4.删除元素
//4.1删除所有的元素 [mutArrayremoveAllObjects]; //4.2删除最后一个元素 [mutArrayremoveLastObject]; //4.3删除指定的元素 [mutArrayremoveObject:personName3]; //4.4根据下标来删除:注意元素内元素的个数下标问题会导致奔溃 [mutArrayremoveObjectAtIndex:2];总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。