美文网首页
集合和数组

集合和数组

作者: follow_er | 来源:发表于2017-05-10 11:23 被阅读11次

先进行定义比较:
NSIndexSet是排好序的,无重复的无符号整形集合.
NSSet用于存储对象的集合;
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类型.

NSIndexSet

系统库中用的非常的多.

//NSArray中  
- (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes;  
- (void)enumerateObjectsAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts usingBlock:(void (^)(id obj, NSUInteger idx, BOOLBOOL *stop))block;  
- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOLBOOL *stop))predicate;<pre name="code" class="objc">......  
//UITableView中  
- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;  
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation; 

相关文章

  • JavaSE总结(5)集合

    一、数组和集合: 数组 数组长度固定 数组可以存储任意类型元素 集合 集合长度可变 集合只能存储引用类型元...

  • iOS数组、字典和集合

    数组、字典和集合的基本用法 数组和集合的区别: NSSet和NSArray都是对象容器,用于存储对象,属于集合; ...

  • 集合Collection

    Collection  1.集合和数组的不同   集合有单列集合List,Set和双列集合Map,与数组相比,其没...

  • 数组和集合

    1. 数组 kotlin为数组增加了一个Array类,为元素是基本类型的数组增加了xxArray类(其中xx也就是...

  • Java进阶---集合

    一、数组和集合的比较 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合...

  • Java集合关系

    数组和集合的比较 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架...

  • 数组集合和链表集合

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互...

  • 集合类型

    集合类型 Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值的集合。数组是有序的值集合。集合是唯...

  • 集合和数组的转换

    集合转数组 数组转集合 (Arrays.asList和Collections.addAll两种方法)

  • Swift编程五(集合类型)

    案例代码下载 集合类型 Swift提供三种主要的集合类型,为数组,集合和字典,用于存储集合值。数组是有序的值集合。...

网友评论

      本文标题:集合和数组

      本文链接:https://www.haomeiwen.com/subject/tmwwtxtx.html