ios基础 – 常见的数组使用介绍[原创]

栏目: IOS · 发布时间: 5年前

内容简介:知识点:一、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

ios基础 – 常见的数组使用介绍[原创]

ios基础 – 常见的数组使用介绍[原创] 微信打赏

ios基础 – 常见的数组使用介绍[原创] 支付宝打赏

感谢您对作者Annwn的打赏,我们会更加努力!    如果您想成为作者,请点我


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码整洁之道:程序员的职业素养

代码整洁之道:程序员的职业素养

罗伯特·C.马丁 (Robert C.Martin) / 余晟、章显洲 / 人民邮电出版社 / 2016-9-1 / 49.00元

1. 汇聚编程大师40余年编程生涯的心得体会 2. 阐释软件工艺中的原理、技术、工具和实践 3. 助力专业软件开发人员具备令人敬佩的职业素养 成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,......一起来看看 《代码整洁之道:程序员的职业素养》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具