IOS开发之NSSet应用

原创 2012年03月21日 11:14:29

NSSet,NSMutableSet,和NSCountedSet类声明编程接口对象的无序集合(散列存储:在内存中的存储位置不连续)。

而NSArray,NSDictionary类声明编程接口对象的有序集合(有序存储:在内存中的存储位置连续)。


NSSet,NSMutableSet; 与NSArray,NSMutableArray的区别一样,NSSet声明静态对象。当创建NSSet对象时初始化,后期气候的条目不能修改。而NSMutableSet对象则是可以动态添加和删除的,同时根据对象长度自动分配内存。

需要注意的是:NSSet,NSArray里面只能添加cocoa对象,如果需要加入基本数据类型(int,float,BOOL,double等),需要将数据封装成NSNumber类型。


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

NSSet

- (NSArray *)allObjects;

- (id)anyObject;

- (BOOL)containsObject:(id)anObject;

- (NSString *)description;

- (NSString *)descriptionWithLocale:(id)locale;

- (BOOL)intersectsSet:(NSSet *)otherSet;

- (BOOL)isEqualToSet:(NSSet *)otherSet;

- (BOOL)isSubsetOfSet:(NSSet *)otherSet;

+ (id)set;

+ (id)setWithObject:(id)object;

+ (id)setWithObjects:(const id *)objects count:(NSUInteger)cnt;

+ (id)setWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

+ (id)setWithSet:(NSSet *)set;

+ (id)setWithArray:(NSArray *)array;


- (id)initWithObjects:(const id *)objects count:(NSUInteger)cnt;

- (id)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

- (id)initWithSet:(NSSet *)set;

- (id)initWithSet:(NSSet *)set copyItems:(BOOL)flag;

- (id)initWithArray:(NSArray *)array;


NSMutableSet (NSExtendedMutableSet)

- (void)addObjectsFromArray:(NSArray *)array;

- (void)intersectSet:(NSSet *)otherSet;

- (void)minusSet:(NSSet *)otherSet;

- (void)removeAllObjects;

- (void)unionSet:(NSSet *)otherSet;

- (void)setSet:(NSSet *)otherSet;

+ (id)setWithCapacity:(NSUInteger)numItems;

- (id)initWithCapacity:(NSUInteger)numItems;



相关文章推荐

iOS 集合NSSet 用法详解

集合NSSet //NSSet中不能存在重复的对象 NSMutableSet *set1 = [[NSMutableSet alloc] initWithObjects:@"1",@"...
  • jeffasd
  • jeffasd
  • 2016年02月17日 10:04
  • 5245

iphone中获取两个矩形的相交区域

//definiton a rect  CGRect rect1 = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);  //获取2个矩形的相交区域  rect...

Objective-C语法之NSSet和NSMutableSet

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

Objective-C语法之NSSet和NSMutableSet

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

NSSet类型 以及与NSArray区别

NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet  , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSAr...

NSSet使用小结

#import int main(int argc, const char * argv[]) { @autoreleasepool { NSSet ...
  • ms2146
  • ms2146
  • 2013年03月10日 21:29
  • 14408

iOS开发之OC基础————NSArray、NSSet、NSDictionary

总结一下Foundation框架中常用的三个类:NSArray、NSSet、NSDictionary的常用属性和方法 NSArray、NSSet、NSDictionary只能存储OC对象,不能存储基...

【iOS开发系列】NSSet & NSIndexSet

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

iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet

代码说事!(代码中笔记较为详细,因此不单独再列出了!) 关于字典和动态字典 NSDictionary&NSMutableDictionary&NSSet&NSMutableSet...

iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式

本文主要讲解的是不可变数组NSArray可变数组NSMutableArray集合NSSet可变集合NSMutableSet详细使用方式包括类型和值之间的转换 文章是博主原创,转载请标明出处 首先来一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS开发之NSSet应用
举报原因:
原因补充:

(最多只允许输入30个字)