OC 数组总结(NSArray,NSMutableArray)
来源:互联网 发布:linux系统开发 编辑:程序博客网 时间:2024/06/10 09:05
1 不可变数组
1.1 创建不可变数组
// 使用字面量的方式创建(常用的方法) NSArray *arr1 = @[@"1",@"2",@"3",@"4"]; // 使用 alloc 和 自定义初始化方式来创建 NSArray *arr2 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4", nil]; // 输出 NSLog(@"arr1 : %@",arr1); NSLog(@"arr2 : %@",arr2);
1.2 将数组拼接成字符串
NSArray *arr3 = @[@"北京",@"大连",@"大庆",@"山东"]; NSString *str1 = [arr3 componentsJoinedByString:@":"]; NSLog(@"str1 : %@",str1); //输出结果 北京:大连:大庆:山东
1.3 字符串截取为数组
NSString *str2 = @"www.baidu.com"; NSArray *arr4 = [str2 componentsSeparatedByString:@"."]; NSLog(@"arr4 : %@",arr4);
1.4 数组的快速遍历(快速枚举)
// 将arr1数组中的所有的元素输出 for (NSString *temp in arr1) { NSLog(@"arr1 : %@",temp); }
1.5 判读一个对象是否在数组中
// 分别判读字符串"0"和字符串"1"是否在数组arr1中 BOOL result = [arr1 containsObject:@"0"]; NSLog(@"result1 : %d",result); result = [arr1 containsObject:@"1"]; NSLog(@"result2 : %d",result);
1.6 数组作为另一个数组的元素
// 创建数组arr5,将数组arr1和数组arr2作为数组arr5的一个元素 NSArray *arr5 = [NSArray arrayWithObjects:arr1,arr2, nil]; NSLog(@"%@",arr5); // 输出arr5的长度 结果是2 NSLog(@"%ld",arr5.count);
2 可变数组
2.1创建可变数组
// 使用便利构造器 NSMutableArray *arr1 = [NSMutableArray array]; // 使用alloc和init NSMutableArray *arr2 = [[NSMutableArray alloc] init];
2.2 添加元素
// 向arr1中添加三个元素 [arr1 addObject:@"张三"]; [arr1 addObject:@"李四"]; [arr1 addObject:@"王五"];
2.3 插入元素
//在1的位置插入"田七" [arr1 insertObject:@"田七" atIndex:1];
2.4 移除元素
// 移除最后一个元素 [arr1 removeLastObject]; // 移除"田七"(按元素内容移除) [arr1 removeObject:@"田七"];
2.5 替换
// 将1位置上的元素替换为"田七" [arr1 replaceObjectAtIndex:1 withObject:@"田七"];
2.6 交换
// 交换位置0和位置1上的元素 [arr1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
2.7 清空数组
[arr1 removeAllObjects];
2.8可变数组和不可变数组的转换
// 向arr1中添加三个元素 [arr1 addObject:@"张三"]; [arr1 addObject:@"李四"]; [arr1 addObject:@"王五"]; // 将arr1中的所有元素添加到一个不可变数组中 NSArray *arr3 = [NSArray arrayWithArray:arr1]; // 将不可变数组的元素添加到可变数组arr4中 NSMutableArray *arr4 = [NSMutableArray arrayWithArray:arr3];
3 四种遍历方式和数组排序
常用的还是第一和第二中遍历方式
// 新建一个数组 NSArray *arr = [NSArray arrayWithObjects:@"5",@"4",@"6", nil];
3.1 第三种遍历方式
// 这是通过block的方式来访问数组里的元素,obj就是对于的元素对象,它的默认类型是id,可以修改为其他的类型 [arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { NSLog(@"%@",obj); }];
3.2 第四种遍历方式
<span style="font-weight: normal;">// 这是使用枚举器来完成遍历 NSEnumerator *enumer = [arr objectEnumerator]; NSString *temp; while (temp = [enumer nextObject]) { NSLog(@"%@",temp); }</span>
3.3 第一种遍历方式
<span style="font-weight: normal;">// for循环 for(int i = 0; i < arr.count; i++){ NSLog(@"%@",arr[i]); }</span>
3.4 第二种便利方式
<span style="font-weight: normal;">// for in 循环 for (NSString *temp in arr) { NSLog(@"%@",temp); }</span>
3.5 数组排序
// 对不可变数组排序,返回一个排序后的数组,原数组不发生改变 NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)]; // 输出排序后的数组 NSLog(@"%@",newArr); // 对可变数组的排序 NSMutableArray *arr2 = [NSMutableArray arrayWithObjects:@"6",@"5",@"8", nil]; [arr2 sortedArrayUsingSelector:@selector(compare:)]; // 输出arr2数组 NSLog(@"%@",arr2);
4 小程序
// 数组中添加三个名字// 查找指定的名字,并用另外的名字替换他
// 删除指定的名字
// 新建可变数组 NSMutableArray *arr = [NSMutableArray array]; // 添加三个姓名 [arr addObject:@"张三"]; [arr addObject:@"李四"]; [arr addObject:@"王五"]; // 查找"李四" NSString *searchName = @"李四"; NSString *replaceName = @"田七"; NSString *deleteName = @"王五"; NSInteger location = -1; for(int i = 0; i < arr.count; i++){ if([arr[i] isEqualToString:searchName]){ location = i; NSLog(@"找了%@,存储位置在%ld",searchName,location); } } if(-1 == location){ NSLog(@"没有找到%@",searchName); } // 用replaceName替换searchName else{ [arr replaceObjectAtIndex:location withObject:replaceName]; NSLog(@"替换完成!用%@替换了%@",replaceName,searchName); } // 删除指定的名字 [arr removeObject:deleteName]; NSLog(@"删除了%@",deleteName); // 输出数组arr的所有元素 for (NSString *temp in arr) { NSLog(@"%@",temp); }
0 0
- OC 数组总结(NSArray,NSMutableArray)
- OC中数组NSArray 和NSMutableArray学习总结
- oc学习之NSArray与NSMutableArray数组
- OC-数组常用操作(NSArray、NSMutableArray)
- OC学习NSArray与NSMutableArray数组
- OC第四节NSArray,NSMutableArray,NSNumber总结
- oc 知识总结二(NSArray、NSMutableArray)
- NSArray、NSMutableArray-OC+class
- OC--NSArray和NSMutableArray
- IOS OC NSArray&NSMutableArray
- OC-NSARRAY-NSMUTABLEARRAY
- 数组 NSArray NSMutableArray
- 数组:NSArray 和 NSMutableArray
- OC 中的NSArray NSString NSMutableArray
- OC NSSet、NSMutableSet、NSArray、NSMutableArray
- OC-NSArray和NSMutableArray
- OC-FUNDATION-NSDate&NSArray&NSMutableArray
- OC学习之道:OC对象,字符串和数组的使用方法NSString,NSMutableString ,NSArray,NSMutableArray
- C语言学习笔记4
- 机器学习中的维度灾难(一)
- java中static和final关键字
- 怎么用block给Button和AlertView添加点击事件
- 关于无法卸载和安装VISIO2010的问题
- OC 数组总结(NSArray,NSMutableArray)
- 求职记录【又名求职杯具史】~
- fzu月赛(2015.11)
- 利用php利用root权限执行shell脚本必须进行以下几个步骤
- iOS应用开发之Core Data数据持久化存储笔记
- go常见error解决办法
- Java课程设计笔记-用org.apache.tools.zip中的类压缩/解压zip文件
- Android控件之EditView
- 用 layoutInflater打气筒创建一个view对象