用来学习复习记录,其他优秀的译文,点击这里

一、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的更多相关文章

  1. NSHashTable NSPointerArray

    NSHashTable和NSMapTable能够对持有的对象做strong或weak存储,弱持有weak引用对象,当weak对象释放后会自动从表中移除     http://blog.csdn.net ...

  2. Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable

    iOS 中有很多种集合类型,最为常见的可能就 NSArray.NSDictionary.NSSet,但其实还有 NSPointerArray.NSMapTable.NSHashTable 等类型,虽然 ...

  3. nsmutableset

    // //  main.m //  nsmutableset // //  Created by 博博 on 16/1/11. //  Copyright (c) 2016年 com.bb. All ...

  4. IOS集合NSSet与NSMutableSet知识点

    NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下.而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的 ...

  5. NSSet、NSMutableSet基本用法

    NSSet.NSMutableSet基本用法 在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个. 一.不可变集合NSSet ...

  6. NSSet、NSMutableSet

    NSSet和NSArray功能性质一样,用于存储对象,属于集合:只能添加cocoa对象,基本数据类型需要装箱. NSSet . NSMutableSet是无序的集合,在内存中存储方式是不连续的,而NS ...

  7. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

  8. NSSet和NSMutableSet 确保数据的唯一性--备

    NSSet和NSMutableSet是无序的, 但是它保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表,所以可以常数时间内查找一个数据. 1.NSSet的使用 [NSS ...

  9. NSDictionary NSMutableDictionary NSSet NSMutableSet

    //description只是返回了一个字符串 //    [person description]; //        //如果想要打印需要NSLog //    NSLog(@"%@& ...

随机推荐

  1. 子Div使用Float后如何撑开父Div

    如果想要撑开父元素可以采用以下方法: 方法一: 父元素设置overflow以及zoom,样式如下: 1 <style> 2   #div1{border:1px solid red;ove ...

  2. 重叠(Overlapping) NAT

    当内部网络也使用公网注册地址(或者是外网合法地址)时,如果仍使用标准的静态或者动态NAT转换,则可能使得转换的内网地址与外网中合法地址冲突,使数据包又返回到了本地网络,这肯定是不行的.这时我们就要使用 ...

  3. java swing模仿随机频谱

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Grap ...

  4. 【JavaScript】 JSON

    1.json 一共就这么几种数据类型   ①,number   和JavaScript的number完全一样   ②,boolean  就是JavaScript的true和false   ③,stri ...

  5. android开发------编写用户界面之相对布局

    今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...

  6. 个人阅读作业——M1/M2总结

    ~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...

  7. 第一章:java语言概述与开发环境

    前言: 1.程序是什么? 程序是对现实世界的数字化模拟! 2.编程语言是工具,程序的作用就是解决问题!  重要的思路! 该知识点能解决什么问题?   1.语言特性:单继承.多接口!       纯面向 ...

  8. Oracle之物化视图

    来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...

  9. CSS选择器优先级排列

    CSS选择器的效率从高到低做了一个排序: 1.id选择器(#myid) 2.类选择器(.myclassname) 3.标签选择器(div,h1,p) 4.相邻选择器(h1+p) 5.子选择器(ul & ...

  10. 转 -- linux IO子系统和文件系统读写流程

    我们含有分析的,是基于2.6.32及其后的内核. 我们在linux上总是要保存数据,数据要么保存在文件系统里(如ext3),要么就保存在裸设备里.我们在使用这些数据的时候都是通过文件这个抽象来访问的, ...