Objective-C基础数据类型-NSSet[转]
集合:
集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。
集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。
1 NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
2 [set count]; //返回集合中对象的个数
判断集合中是否拥有某个元素
1 //判断集合中是否拥有@“two”
2 BOOL ret = [set containsObject:@"two"];
判断两个集合是否相等
1 NSSet * set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
2 //判断两个集合是否相等
3 BOOL ret = [set isEqualToSet:set2];
判断set是否是set2的子集合
1 NSSet * set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil];
2 //判断set是否是set2的子集合
3 BOOL ret = [set isSubsetOfSet:set2];
集合也可以用枚举器来遍历
1 //集合也可以用枚举器来遍历
2 NSEnumerator * enumerator = [set objectEnumerator];
3 NSString *str;
4 while (str = [enumerator nextObject]) {
5 ……
6 }
通过数组来初始化集合(数组转换为集合)
1 NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
2 NSSet * set = [[NSSet alloc] initWithArray:array];
集合转换为数组
1 NSArray * array2 = [set allObjects];
可变集合NSMutableSet
1 //可变集合NSMutableSet
2 NSMutableSet * set = [[NSMutableSet alloc] init];
3 [set addObject:@"one"];
4 [set addObject:@"two"];
5 [set addObject:@"two"]; //如果添加的元素有重复,实际只保留一个
删除元素
1 //删除元素
2 [set removeObject:@"two"];
3 [set removeAllObjects];
将set2中的元素添加到set中来,如果有重复,只保留一个
1 //将set2中的元素添加到set中来,如果有重复,只保留一个
2 NSSet * set2 = [[NSSet alloc] initWithObjects:@"two",@"three",@"four", nil];
3 [set unionSet:set2];
删除set中与set2相同的元素
1 [set minusSet:set2];
指数集合(索引集合)NSIndexSet
1 //指数集合(索引集合)NSIndexSet 2 NSIndexSet * indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 3)]; //集合中的数字是123
根据集合提取数组中指定位置的元素
1 //根据集合提取数组中指定位置的元素 2 NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil]; 3 NSArray * newArray = [array objectsAtIndexes:indexSet]; //返回@"two",@"three",@"four"</
可变指数集合NSMutableIndexSet
复制代码
1 NSMutableIndexSet indexSet = [[NSMutableIndexSet alloc] init];
2 [indexSet addIndex:0];
3 [indexSet addIndex:3];
4 [indexSet addIndex:5];
5 //通过集合获取数组中指定的元素
6 NSArray array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six", nil];
7 NSArray *newArray = [array objectsAtIndexes:indexSet]; //返回@"one",@"four",@"six"
Objective-C基础数据类型-NSSet[转]的更多相关文章
- OC基础数据类型-NSSet
1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合.集合是一种哈希表,运用散列算法,查找集合中的元素比数组 ...
- 【转】 OC基础数据类型-NSSet
原文 : http://www.cnblogs.com/GISerYang/p/3340937.html 1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过 ...
- OC基础--数据类型与表达式
前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var 定义变量,let定义常量. 比如 ...
- 二、Windows基础数据类型
六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...
- java基础数据类型包装类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
随机推荐
- [deviceone开发]-do_SlideListView的简单示例
一.简介 利用提供的SlideListVIew实现那种cell可以滑动露出底部按钮的功能 主要组件:do_slidelistview 二.效果图 三.相关讨论 http://bbs.deviceone ...
- SAP打印机配置
SAP打印机配置 一.SAP打印原理 SAP的打印过程分两个步骤: 1.创建假脱机请求: 2.创建输出请求: 在点击打印按钮后,系统会提示创建假脱机请求后,你可以选择直接生成输出请求,或者手动生成输出 ...
- 应用代理 socket TCP协议 的资料
http://blog.csdn.net/guowake/article/details/6615728 Linux下高并发socket最大连接数所受的各种限制 http://stackoverflo ...
- git 新建服务器的版本以及项目的用户
一, git客户端账号生成 1. git的客户端的公钥生成 ssh-keygen -t rsa -C "test@gmail.com" mac机器会在 /Users/用户/.ssh ...
- Asp.net中GridView使用详解(引)
GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠标移到Gr ...
- 【C语言】C语言运算符
目录: [算术运算符] [自增运算符] [自减运算符] [关系运算符] [逻辑运算符] [三目运算符] [sizeof运算符] · 作用 1.算术运算符 +(加).-(减).*(乘)./(除).%(取 ...
- IOS 音效
IOS 音效 音效我们也可以成为短音频通常在程序中播放时间为1~2秒. 在应用程序中起到点缀效果,提升整体用户体验 音效文件只需要加载一次 示例代码: // // ViewController.m / ...
- nodejs 小爬虫
编写爬虫示例: var http = require('http'); var cheerio = require('cheerio'); var url = 'http://www.cnblogs. ...
- 关于tableview内cell自定义的注册以及创建
自定义cell的方法主要有两种,storyboard以及xib(假设新建的是cellTableViewCell类) 比较倾向于xib方式使用xib在xib文件内将自定义的cell绘制好后导入到调用文件 ...
- jenkins打包成功,部署失败
环境一直正常,更新了tomcat版本后自动部署报错 ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exce ...