luobo140716的专栏

/****************集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址,不过NSArray是有序的集合,NSSet是无序的集合,同时NSSet可以保证数据的唯一性,当插入相同的数据时,不会有任何效果。集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是他没有顺序****************/

/****************Immutable Set****************/

@interface NSSet :NSObject <NSCopying,NSMutableCopying, NSSecureCoding,NSFastEnumeration>

//1.判断两个对象的值是否相逢,用来查询set里面是否有一个对象与传入对象的值相等。

– (id)member:(id)object;

//2.返回集合中所有对象到一个NSEumerator类型的对象

– (NSEnumerator *)objectEnumerator;

//3.初始化

– (instancetype)initNS_DESIGNATED_INITIALIZER;

//4.使用一组对象初始化新分配的对象

– (instancetype)initWithObjects:(constid [])objects count:(NSUInteger)cntNS_DESIGNATED_INITIALIZER;

– (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;

@end

@interface NSSet (NSExtendedSet)

//5.所有对象的数组属性

@property (readonly,copy

//6.返回集合中的某个对象

– (id)anyObject;

//7.判断集合中是否有对象

– (BOOL)containsObject:(id)anObject;

//8.将集合转化成字符串,也可以通过改变description改变字符串

@property (readonly,copy

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

//9.判断在一个集合中是否可以插入另外一个集合

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

//10.判断两个集合是否相等

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

//11.判断一个集合是否是另外一个集合的子集。

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

//12.让集合中的对象执行指定的方法(遍历)

– (void)makeObjectsPerformSelector:(SEL)aSelector;

– (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;

//13.在集合中追加一个对象返回set

– (NSSet *)setByAddingObject:(id)anObjectNS_AVAILABLE(10_5,2_0);

//14.在集合中追加另外一个集合

– (NSSet *)setByAddingObjectsFromSet:(NSSet *)otherNS_AVAILABLE(10_5,2_0);

//15.在一个集合后面追加一个数组,返回一个新的集合set

– (NSSet *)setByAddingObjectsFromArray:(NSArray *)otherNS_AVAILABLE(10_5,2_0);

//16.遍历整个集合执行在block中

– (void)enumerateObjectsUsingBlock:(void (^)(id obj,BOOL *stop))block NS_AVAILABLE(10_6, 4_0);

//17.遍历整个集合并且有遍历选项条件

– (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void (^)(id obj, BOOL *stop))blockNS_AVAILABLE(10_6,4_0);

//18.这个方法标示着传入函数的参数是一个动态对象类型和一个布尔类型,返回一个布尔类型的代码块

– (NSSet *)objectsPassingTest:(BOOL (^)(id obj,BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0);

//19.同上,增加了列举计算选项

– (NSSet *)objectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(id obj, BOOL *stop))predicateNS_AVAILABLE(10_6,4_0);

@end

@interface NSSet (NSSetCreation)

//20.快速创建set

+ (instancetype)set;

//21.创建set并初始化一个对象

+ (instancetype)setWithObject:(id)object;

//22.创建set并初始化一些对象 分配大小

+ (instancetype)setWithObjects:(constid [])objects count:(NSUInteger)cnt;

//23.创建set并初始化一些对象 以nil结尾

+ (instancetype)setWithObjects:(id)firstObj, …NS_REQUIRES_NIL_TERMINATION;

//24.创建set并初始化添加set

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

//25.创建set并初始化添加一组数组

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

//26.创建set并初始化添加一组数组

– (instancetype)initWithObjects:(id)firstObj, …NS_REQUIRES_NIL_TERMINATION;

//27.创建set并初始化添加set

– (instancetype)initWithSet:(NSSet *)set;

//28.创建set并初始化添加set 增加标识符

– (instancetype)initWithSet:(NSSet *)set copyItems:(BOOL)flag;

//29.创建set并初始化添加一组数组

– (instancetype)initWithArray:(NSArray *)array;

@end

/****************Mutable Set****************/

@interface NSMutableSet :NSSet

//30.可变set添加一个对象

– (void)addObject:(id)object;

//31.移除set对象

– (void)removeObject:(id)object;

– (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;

//32.初始化set

– (instancetype)initNS_DESIGNATED_INITIALIZER;

//33.为set初始化设置大小

– (instancetype)initWithCapacity:(NSUInteger)numItemsNS_DESIGNATED_INITIALIZER;

@end

@interface NSMutableSet (NSExtendedMutableSet)

//34.为set添加对象通过数组

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

//35.为set插入新的set

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

//36.从接受者中删除NSSet的左右成员

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

//37.移除set的所有对象元素

– (void)removeAllObjects;

//38.取两个集合的并集,如果给定集合中的成员不是接收集合的成员,,则将这个成员添加到接收集合中。

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

//39.将otherSet替换了set并且将两个集合的交集加到set中

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

@end

@interface NSMutableSet (NSMutableSetCreation)

//40.新建集合并且设置初始化的长度

+ (instancetype)setWithCapacity:(NSUInteger)numItems;

@end

/****************Counted Set****************/

//41.创建集合并且初始化长度

– (instancetype)initWithCapacity:(NSUInteger)numItems;// designated initializer

//42.创建集合 以数组初始化对象

– (instancetype)initWithArray:(NSArray *)array;

//43.创建集合 以其他set初始化集合对象

– (instancetype)initWithSet:(NSSet *)set;

//44.统计重复集合对象的个数

– (NSUInteger)countForObject:(id)object;

//45.返回一个枚举类型

– (NSEnumerator *)objectEnumerator;

//46.添加一个对象

– (void)addObject:(id)object;

//47.移除一个对象

– (void)removeObject:(id)object;

@end

开上一部车,装着我们的故事,

luobo140716的专栏

相关文章:

你感兴趣的文章:

标签云: