NSSet基本使用
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个集合对象 注:如果集合中写了两次或多次同一个对象 打印只能看到一个
NSSet *set1 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"three", nil];
//注:集合里面最外层先是大括号 然后小括号
//集合是无序 它是哈希散列排序 《数据结构》哈希算法
NSLog(@"%@",set1);
//集合中元素的个数
NSLog(@"集合的个数:%ld",[set1 count]);
//是否包含某个元素
BOOL contains = [set1 containsObject:@"two"];
NSLog(@"是否包含:%d",contains);
//两个集合是否相等
NSSet *set2 = [NSSet setWithObjects:@"one",@"two",@"three",@"four", nil];
BOOL isEqual = [set1 isEqualToSet:set2];
if (isEqual) {
NSLog(@"两个集合相等");
}else {
NSLog(@"两个集合不相等");
}
//判断第一个集合是否是第二个集合的子集合
BOOL isSubset = [set1 isSubsetOfSet:set2];
NSLog(@"是否是子集合:%d",isSubset);
//枚举遍历 for while do-while forin 枚举器
//取set2的集合枚举器 经常用枚举器遍历集合
NSEnumerator *enumerator = [set2 objectEnumerator];
NSString *str;
//nextObject 下一个元素
while (str = [enumerator nextObject]) {
NSLog(@"%@",str);
}
//通过数组的方式去创建集合 (数组转成集合)
NSSet *set3 = [NSSet setWithArray:@[@"one",@"five"]];
NSLog(@"set3:%@",set3);
//查看集合所有元素 返回一个数组 (集合转成数组)
NSArray *array1 = [set3 allObjects];
NSLog(@"array1:%@",array1);
/********可变集合*******/
//创建空的集合
NSMutableSet *mSet = [[NSMutableSet alloc] init];
NSLog(@"%@",mSet);
//增
//增加集合元素
[mSet addObject:@"one"];
[mSet addObject:@"one"];
[mSet addObject:@"two"];
[mSet addObject:@"three"];
NSLog(@"%@",mSet);
//删
//删除集合元素
[mSet removeObject:@"one"];
NSLog(@"%@",mSet);
//集合中添加集合
[mSet unionSet:set2];
NSLog(@"------%@",mSet);
//集合中删除集合 删除的时候 如果要删除集合里面有多的集合元素,mSet没有此集合元素 删除的时候不会崩溃
// NSSet *_set = [NSSet setWithObjects:@"one",@"two",@"three",@"four",@"1", nil];
// [mSet minusSet:_set];
// NSLog(@"======%@",mSet);
/********指数集合或索引集合**********/
//继承NSObject
//创建一个索引集合 通过在指定范围创建索引集合 注:range千万别超范围会崩溃
// NSIndexSet *set4 = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(2, 4)];
//创建一个空的可变的索引集合
NSMutableIndexSet *set5 = [[NSMutableIndexSet alloc] init];
//给可变索引集合添加下标
[set5 addIndex:];
[set5 addIndex:];
[set5 addIndex:];
[set5 addIndex:];
NSArray *allArray = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil];
//通过索引集合得到数组(索引range范围内的数组元素)
NSArray *subArray = [allArray objectsAtIndexes:set5];
NSLog(@"++++++++%@",subArray);
}
return ;
}
NSSet基本使用的更多相关文章
- iOS笔记之NSSet
一.简介 NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的, ...
- Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区
Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]init ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- NSSet
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.NSSet的创建和初始化 创建一个空的NSSet集合:+ (void)set; 用数组来创建NSSet集合:+ (id)setWithArra ...
- Foundation ----->NSSet
1.集合类 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString * ...
- 遍历NSArray, NSDictionary, NSSet的方法总结
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...
- OC NSSet
OC NSSet 数组的特点: 有序的 Set的特点: 无序的,存储元素无重复(例:set中有两个元素'a' 输出时只输出一个a) NSSet初始化 NSSet * set = [[NSSet all ...
- Objective-C基础数据类型-NSSet[转]
转自GISerYang 集合: 集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合. 集合是一种哈希表,运用散列算法 ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- IOS集合NSSet与NSMutableSet知识点
NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下.而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的 ...
随机推荐
- 微信读书App来了 小伙伴们快去占榜吧
微信读书App正式上线了,iOS版和Android版同时推出.届时将会出现像微信运动一样的霸榜小伙伴.资料显示,阅文集团成立于2014年1月,是腾讯文学和盛大文学联合成立的新公司.阅文集团成立后,会对 ...
- windows如何安装mysql
参考一下网址,已测试可用 https://www.cnblogs.com/reyinever/p/8551977.html
- MFC实现简单飞机大战(含游戏声音)
1 实验内容 本实验主要是实现简单的飞机大战游戏,包含游戏声音.碰撞后爆炸效果,有大小敌机等.所用到的知识点如下: 1.贴图技术 2.飞机类.子弹类实现 3.位图移动 4.碰撞判断,实现爆炸效果 5. ...
- 覆盖bootstrap的样式
覆盖bootstrap的样式,很简单.在css中加上 !important 来更改自己样式的执行优先级!
- maven的相关命令
maven的相关命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码(编译到target文件夹中) mvn test-compile :编译测 ...
- Kattis - fence2【二分法】
Kattis - fence2[二分法] 题意 有一个农夫需要建造一个 N - 1 米长的篱笆,需要 N 根柱子,然后有 K 根 柱子 需要将这 K 根柱子 切成 N 段 然后 要尽量保证这 N 段柱 ...
- gc摘要
1. Sun JDK 1.6 GC(Garbage Collector) http://bluedavy.com2010-05-13 V0.2 2010-05-19 V0.52010-06-01 V0 ...
- Python3.x:pyodbc调用sybase的存储过程
Python3.x:pyodbc调用sybase的存储过程 示例代码 # python3 # author lizm # datetime 2018-03-02 17:00:00 # -*- codi ...
- Zabbix Windos mysql 监控脚本
说明:判断mysql主进程是否关闭,如果关闭则返回0 创建文件:MySQL-ping.vbs Set objFS = CreateObject("Scripting.FileSystemOb ...
- Spring AOP(2)