NSSet类型 以及与NSArray区别
2013-05-11 12:06
453 查看
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
常用方法总结
常用方法总结
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
常用方法总结
常用方法总结
相关文章推荐
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- NSSet类型 以及与NSArray区别
- 【多线程 5】线程池的类型以及submit()和execute()的区别
- sqlserver数据类型char和nchar,varchar和nvarchar,text和ntext的用法以及区别?
- double 类型转换以及intValue,parseInt,Valueof 三者的区别
- 再谈CLR:值类型按照引用传递(以及与装箱拆箱的区别)
- NSSet类型 以及与NSArray区别