iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式
来源:互联网 发布:淘宝代充话费怎么弄 编辑:程序博客网 时间:2024/05/17 13:46
本文主要讲解的是不可变数组NSArray可变数组NSMutableArray集合NSSet可变集合NSMutableSet详细使用方式包括类型和值之间的转换
文章是博主原创,转载请标明出处http://blog.csdn.net/werctzzz/article/details/70928738
首先来一个集合的详细方法~
#pragma mark NSSet 不可变集合 // NSSet和NSArray有相似之处,都是存储不同的对象的地址 // 但是NSArray是有序的集合,NSSet是无序的集合。 // 在介绍完了NSSet就讲讲数组~ // 基本知识:集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。 // 1.集合的初始化 NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil]; NSLog(@"%ld",[set count]); //集合中对象的个数 // 2.集合的判断 // 2.1判断集合中是否拥有@“two” BOOL boolset1 = [set containsObject:@"two"]; // 2.2判断两个集合是否相等 NSSet * set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil]; BOOL boolset2 = [set isEqualToSet:set2]; //判断set是否是set3的子集合 NSSet * set3 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil]; BOOL boolset3 = [set isSubsetOfSet:set3]; // 3.通过数组来初始化集合 // 3.1数组转换为集合 NSArray * changeArray1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil]; NSSet * changeSet = [[NSSet alloc] initWithArray:changeArray1]; // 3.2集合转换为数组 NSArray * changeArray2 = [changeSet allObjects];#pragma mark NSMutableSet 可变集合 // 1.可变集合初始化 NSMutableSet * MutableSet = [[NSMutableSet alloc] init]; // 2.内部元素的操作 // 2.1增加元素 [MutableSet addObject:@"one"]; [MutableSet addObject:@"two"]; [MutableSet addObject:@"two"]; // 2.2删除元素 [MutableSet removeObject:@"two"]; [MutableSet removeAllObjects]; // 3.集合的互相添加 // 3.1将一个不可变集合中的元素添加到可变集合中来,如果有重复,只保留一个 NSSet * addSet = [[NSSet alloc] initWithObjects:@"two",@"three",@"four", nil]; [MutableSet unionSet:addSet]; // 3.2删除set中与set2相同的元素 [MutableSet minusSet:addSet]; // 4.指数集合(索引集合)NSIndexSet NSIndexSet * indexSet1 = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 3)]; //集合中的数字是123 // 5.根据集合提取数组中指定位置的元素 NSArray * arrayout1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil]; NSArray * newArray1 = [arrayout1 objectsAtIndexes:indexSet1]; //返回@"two",@"three",@"four" // 6.可变指数集合NSMutableIndexSet NSMutableIndexSet * indexSet2 = [[NSMutableIndexSet alloc] init]; [indexSet2 addIndex:0]; [indexSet2 addIndex:3]; [indexSet2 addIndex:5]; // 7.通过集合获取数组中指定的元素 NSArray * arrayout2 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six", nil]; NSArray * newArray2 = [arrayout2 objectsAtIndexes:indexSet2]; //返回@"one",@"four",@"six"
接下来就是数组的详细使用方式~
#pragma mark NSArray 不可变数组 NSString *str1 = @"1"; NSString *str2 = @"2"; NSString *str3 = @"3"; //NSArray 常用方法 // 1. 创建对象,初始化 NSArray *arry1 = [[NSArray alloc]initWithObjects:str1,str2,str3, nil]; NSLog(@"%@", arry1); /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ // 2. 获取数组中的对象 根据数据在数组的位置 index NSString *obj = arry1[2]; // 注意类型要正确,不然会发生崩溃,如果类型不一致可以先转换 NSLog(@"%@", obj);//1 NSLog(@"%@", arry1[2]);//2 NSLog(@"%@", [arry1 objectAtIndex:1]);//3/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ // 3. 获取数组长度(元素个数) NSLog(@"%ld", [arry1 count]); /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ // 4.查询某个对象的下标 NSArray *arry2 = [NSArray arrayWithObjects:@"赵",@"张",@"靳",@"张",@"宋",nil]; NSLog(@"%ld", [arry2 indexOfObject: @"靳"]); /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/#pragma mark NSMutableArray 可变数组 // 1.初始化创建 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"张三",@"李四",@"王五",@"孙二",@"赵六",@"周七", nil]; for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); } // ⭐️初始化需要注意的地方 // ①[NSMutableArray arrayWithCapacity:6] // 初始化可变数组对象的长度,如果后面代码继续添加数组超过长度6以后NSMutableArray的长度会自动扩充,6是自己可以设置的颗粒度。 // ②[array addObject:...] // 向可变数组尾部添加数据对象。 // ③[array addObjectsFromArray:..] // 向可变数组尾部添加一个数组对象。/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ // 2.对数组内容的操作 // 2.1添加元素 [array addObject:@"钱八"]; //添加一个 @"钱八"进去array里面 for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); }//钱八添加到array里面,在最后一个位置 // 2.2插入元素 [array insertObject:@"陈一" atIndex:2]; for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); }//把 陈一 插入到指定下标位置,下标为2 // 2.3删除元素 [array removeObject:@"孙二"];//把 孙二 从数组里删除 [array removeObjectAtIndex:5];//把下标为5的删除 // 重温一下上一篇博客学的 NSRange 设置一个范围为 0 到 3 之间。 NSRange range = NSMakeRange(0,3); [array removeObject:@"李四" inRange:range];//按范围删除 // ⭐️删除操作时候要注意的地方 // ①[array removeObject:(id)] 删除数组中指定元素,根据对象isEqual消息判断。 // ②[array removeObjectAtIndex:(NSUInteger)] 删除数组中指定脚标索引的数据。 // ③[array removeObjectsInArray:(NSArray *)] 删除一个数组的元素。 // ④[array removeObjectIdenticalTo:(id)] 删除数组中指定元素,根据对象的地址判断 // ⑤[array removeObjectIdenticalTo:(id) inRange:(NSRange)] 在指定范围内删除指定的元素。 // 遍历查看结果 for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); } // 2.4替换元素 [array replaceObjectAtIndex:4 withObject:@"坑爹"];//给据下标把内容替换 for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); } // 2.5交换指定位置元素 [array exchangeObjectAtIndex:2 withObjectAtIndex:4];//把二和四的下标元素替换 for (int i = 0; i < [array count]; i++){ NSLog(@"%d%@", i, [array objectAtIndex:i]); }
0 0
- iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式
- NSSet -- 集合&&NSMutableSet -- 可变集合
- 集合:NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet使用
- 数组NSArray和可变数组NSMutableArray的基础知识
- 集合: NSSet(不可变集合)和NSMutableSet(可变集合)
- OC语言 集合>>不可变数组(NSArray) 与 可变数组(NSMutableArray)
- Objective-C学习-NSSet(集合),NSMutableSet(可变集合) NSCountSet(计数集合)
- IOS 中数组、集合、字典的使用(NSArray, NSSet, NSDictionary)
- Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础
- 【iOS开发】 中数组、集合、字典的使用(NSArray, NSSet, NSDictionary)
- 固定数组NSArray 和 可变NSMutableArray
- iOS开发学习专题-基础知识(三)NSDictionary字典NSMutableDictionary可变字典NSDictionary字典和json转换详细使用方式
- 字符串,数组,集合,array,nsmutablearray, nsdictionary,nsset
- 字符串,数组,集合,array,nsmutablearray, nsdictionary,nsset
- iOS OC (五) 字典NSDictionary 数组 NSArray 集合 NSSet
- iOS中的遍历(数组NSArray,字典NSDictionary,集合NSSet)
- iOS中的遍历(数组NSArray,字典NSDictionary,集合NSSet)
- OC NSSet、NSMutableSet、NSArray、NSMutableArray
- spring中普通类如何获取session,request等对象
- source insight 下设置tab键的宽度
- Window 7下安装python等
- itk反向配准失败的问题
- Shader编程学习笔记(九)—— Cg语言入门1
- iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式
- IO流中遍历目录下的所有子文件和文件夹
- 【秒懂设计模式】建造者模式
- Asp.net中web.config配置文件详解(原文:http://blog.csdn.net/hbqhdlc/article/details/8164521)
- intellij idea让资源文件自动更新
- Shader编程学习笔记(十)—— Cg语言入门2
- Spring事务管理
- CodeWars 计算一个城市的降雨量
- 闷骚程序员有感