捉襟见肘之NSMutableSet和NSPointerArray
用来学习复习记录,其他优秀的译文,点击这里
一、NSMutableSet
NSMutableSet和NSMutableArray存放数据方式分别是无序和有序,这说明,数组是可以通过index获取对象。
NSMutableSet和NSSet都是集合
她们都有:比较compare 交集instersection 并集union
但是NSMutableSet还可以:查找valueForKey 添加add 删除remove
更多了解复制这里:
http://blog.csdn.net/ally_ideveloper/article/details/7939749
// 这个人写的我比较喜欢,朴实自然1 http://my.oschina.net/u/1782374/blog/380703
1.NSSet和NSMutableSet和数组一样只能添加Cocoa对象,如果需要添加基本数据变成NSNumber
2.集合的查找速度比数组高,例如查找某一个value值,数组遍历,集合hash
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 做交集运算
二、NSPointerArray
NSPointerArray类是一个稀疏数组
1.NSPointerArray工作起来与NSMutableArray相似,但可以存储NULL值,通过count获取;
2.可以用NSPointerFunctions对她进行设置,也可用静态函数构造:
+ (NSPointerArray *)strongObjectsPointerArray + (NSPointerArray *)weakObjectsPointerArray
捉襟见肘之NSMutableSet和NSPointerArray的更多相关文章
- NSHashTable NSPointerArray
NSHashTable和NSMapTable能够对持有的对象做strong或weak存储,弱持有weak引用对象,当weak对象释放后会自动从表中移除 http://blog.csdn.net ...
- Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable
iOS 中有很多种集合类型,最为常见的可能就 NSArray.NSDictionary.NSSet,但其实还有 NSPointerArray.NSMapTable.NSHashTable 等类型,虽然 ...
- nsmutableset
// // main.m // nsmutableset // // Created by 博博 on 16/1/11. // Copyright (c) 2016年 com.bb. All ...
- IOS集合NSSet与NSMutableSet知识点
NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下.而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的 ...
- NSSet、NSMutableSet基本用法
NSSet.NSMutableSet基本用法 在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个. 一.不可变集合NSSet ...
- NSSet、NSMutableSet
NSSet和NSArray功能性质一样,用于存储对象,属于集合:只能添加cocoa对象,基本数据类型需要装箱. NSSet . NSMutableSet是无序的集合,在内存中存储方式是不连续的,而NS ...
- OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...
- NSSet和NSMutableSet 确保数据的唯一性--备
NSSet和NSMutableSet是无序的, 但是它保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表,所以可以常数时间内查找一个数据. 1.NSSet的使用 [NSS ...
- NSDictionary NSMutableDictionary NSSet NSMutableSet
//description只是返回了一个字符串 // [person description]; // //如果想要打印需要NSLog // NSLog(@"%@& ...
随机推荐
- JVM内存管理------GC算法精解(复制算法与标记/整理算法)
本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...
- list转datatable
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- C++11的default和delete关键字
C11的新特性实在是太多了,这2个关键字关注的人倒是少了很多,其中有一个原因便是编译器支持得太慢了(VS到VS2013才支持上),不过这2个关键字那真是极为有用的,下面我们来看看. [default关 ...
- 拼接sql是陷阱
项目临时新增一个功能,此时我们习惯自己拼接一个sql. 更可怕的是,后期用户要求新增查询条件,甚至有上10个查询条件,这时的拼接更头疼,if append append(" status=@ ...
- 让所有的浏览器都支持html5
<!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" ...
- XML的总结学习
XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. (一切都是为了数据:采集.整理.存储.传输.显 ...
- [转]hibernate在eclipse的逆向工程生成hbm.xml和bean类
原文地址:http://www.xuebuyuan.com/210489.html 以前一直用myelipse,在myeclipse做hibernate逆向工程倒是很顺手了. 可是最近改用eclips ...
- Shell脚本_备份/etc数据
vim backup_etc.sh chmod 755 backup_etc.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
- 【BZOJ 1031】【JSOI 2007】字符加密Cipher
后缀数组模板题,看了一天的后缀数组啊,我怎么这么弱TwT #include<cstdio> #include<cstring> #include<algorithm> ...
- Entity Framework Code First (一)Conventions
Entity Framework 简言之就是一个ORM(Object-Relational Mapper)框架. Code First 使得你能够通过C#的类来描述一个模型,模型如何被发现/检测就是通 ...