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算法直接找到此元素的 ...
随机推荐
- 002-使用java类调用quartz
一.工具类 package com.tech.jin.jobScheduler; import java.text.ParseException; import java.util.ArrayList ...
- R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)
平时都是几百万的数据量,这段时间公司中了个大标,有上亿的数据量. 现在情况是数据已经在数据库里面了,需要用R分析,但是完全加载不进来内存. 面对现在这种情况,R提供了ff, ffbase , ETLU ...
- Codeforces Round #468(div2)
A Friends Meeting 题意:有两个人在数轴上的不同位置,现在他们需要到一个位置碰面.每次每人只能向左或向右走1个单位,轮流进行.每个人第一次走时疲劳度+1,第二次走时疲劳度+2,以此类推 ...
- 设置SVN提交日志必填
1.打开visualSVN Server2.打开Repositories3.右键需要控制的项目->所有任务->manage hooks...4.选择Hooks tab,点击Pre-comm ...
- java中文转Unicode
public String cnToUnicode(String cn) { char[] chars = cn.toCharArray(); String returnStr = "&qu ...
- unity, 在编辑界面中隐藏公开变量
unity默认声明为public的变量都是在编辑界面可见的,如果要隐藏的话就可以这样做 一种是使用属性 Public float Age { get; set; } 另一种是使用标签 [HideInI ...
- linux命令(6/10):find 命令
Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种.系统时间是指当前Linux Kernel中的时钟, 而硬件时钟则是主板上由电池供电 ...
- Entity FrameWork 配置 之连接字符串隐藏或重用
C/S项目中使用EF,默认回生成app.config文件夹,软件打包安装成功之后就回生成一个对应exe.config.里面会包含配置的一些信息. 这里介绍给大家一种隐藏连接字符串的方式. 代码如下: ...
- CString和char互转,十六进制的BYTE转CString
CString转char: CString m_Readcard; char ReaderName[22]; strcpy((char*)&ReaderName,(LPCTSTR)m_Read ...
- Nested DollsHDU1677
/*题意:有n个矩形,用长和宽表示,如果一个的长和宽都比另一个小,那么这个嵌放在另一个中 所以先对w从大到小排序,w一样的按h从小到大排序,那么就从后面的箱子往前找,只要前面找到一个人h比自己大的就放 ...