NSSet与NSArray区别
NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray,NSDictionary(都是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的;
NSSet和我们常用NSArry区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash(散列,也可直译为哈希);开发文档中这样解释:You can use sets as an alternative to arrays when the order of elements isn’t important and performance in testing whether an object is contained in the set is a consideration—while arrays are ordered, testing for membership is slower than with sets.
比如你要存储元素A,一个hash算法直接就能直接找到A应该存储的位置;同样,当你要访问A时,一个hash过程就能找到A存储的位置。而对于NSArray,若想知道A到底在不在数组中,则需要便利整个数组,显然效率较低了;
NSSet,NSArray都是类,只能添加cocoa对象,如果需要加入基本数据类型(int,float,BOOL,double等),需要将数据封装成NSNumber类型。
NSSet 常用方法总结
| +(id)setWithObjects:obj1,obj2,...nil | 使用一组对象创建新的集合 |
| -(id)initWithObjects:obj1,obj2,....nil | 使用一组对象初始化新分配的集合 |
| -(NSUInteger)count | 返回集合成员个数 |
| -(BOOL)containsObject:obj | 确定集合是否包含对象 obj |
| -(BOOL)member:obj | 确定集合是否包含对象 obj |
| -(NSEnumerator*)objectEnumerator | 返回集合中所有对象到一个 NSEnumerator 类型的对象 |
| -(BOOL)isSubsetOfSet:nsset | 判断集合是否是NSSet的子集 |
| -(BOOL)intersectsSet:nsset | 判断两个集合的交集是否至少存在一个元素 |
| -(BOOL)isEqualToSet:nsset | 判断两个集合是否相等 |
NSMutableSet 常用方法总结
| -(id)setWithCapcity:size | 创建一个有size大小的新集合 |
| -(id)initWithCapcity:size | 初始化一个新分配的集合,大小为size |
| -(void)addObject:obj | 添加对象 obj 到集合中 |
| -(void)removeobject:obj | 从集合中删除对象 obj |
| -(void)removeAllObjects | 删除集合中所有对象 |
| -(void)unionSet:nsset | 将nsset的所有元素添加到集合 |
| -(void)minusSet:nsset | 从集合中去掉所有的NSSet 的元素 |
| -(void)interectSet:nsset | 集合和NSSet 做交集运算 |
NSSet与NSArray区别的更多相关文章
- NSSet类型 以及与NSArray区别
NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSAr ...
- IOS开发学习笔记016-Foundation框架
Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length) typedef struct _NSRange { NSUIntege ...
- iOS 读书笔记 第一章
1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *arra ...
- NSDictionary和NSMaptable, NSArray,NSSet,NSOrderedSet和NSHashTable的区别
NSSet, NSDictionary, NSArray是Foundation框架关于集合操作的常用类, 和其他标准的集合操作库不同, 他们的实现方法对开发者进行隐藏, 只允许开发者写一些简单的代码, ...
- NSArray和NSSet的区别
NSSet到底什么类型? 其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的 像NSAr ...
- 遍历NSArray, NSDictionary, NSSet的方法总结
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- 用法总结:NSArray,NSSet,NSDictionary-备用
Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合 (集合)NS ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
随机推荐
- ubuntu下管理android手机
1.安装adb apt-get install android-tools-adb 2.配置 1)运行lsusb Bus 001 Device 002: ID 8087:0024 Intel Corp ...
- winform datetimepacker 开始日期 结束日期 分类: WinForm 2014-07-15 19:14 124人阅读 评论(0) 收藏
dtpStart;//开始日期 dtpEnd;//结束日期 1:开始日期小于结束日期 加载dtpEnd的ValueChanged事件即可. //开始日期小于结束日期 private v ...
- uva 11178 Morley's Theorem(计算几何-点和直线)
Problem D Morley's Theorem Input: Standard Input Output: Standard Output Morley's theorem states tha ...
- [每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案:D 一.模拟上题的错误: 1.删除4号文件 [oracle@myd ...
- Linux堆内存管理深入分析--阿里聚安全
http://www.freebuf.com/author/%E9%98%BF%E9%87%8C%E8%81%9A%E5%AE%89%E5%85%A8
- 《ICSharpCode快速解压缩帮助类》——即粘即用
在项目中往往使用解压缩公共类,解压缩之后的文件占用空间小,也可进行加密,往往可以用于客户端上传附件,打包输出主程序等,其中的好处就不多说了,最近着手的项目中多次使用到了解压缩方法,现较流行的就是ICS ...
- ip、数字的互转
# ip ==> 数字 >>> ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[: ...
- <thead>
<thead> 标签定义表格表头该标签用于组合 HTML 表格表头内容 thead 元素应该与 tbody 和 tfoot 元素结合起来使用 tbody 元素用于对 HTML 表格主体内容 ...
- 分享一下自己在用的CSS样式重置代码
通过借鉴网上大牛们的经验和自己在工作中碰到的一些问题,总结出了这些比较常用的CSS样式重置的代码: @charset "utf-8"; /* 防止用户自定义背景颜色对网页的影响,添 ...
- Weex 初始
1.一旦数据和模板绑定,数据的变化会立即体现在前台的变化 <template> <container> <text style="font-size: {{si ...