版权声明:本文为博主原创文章,未经博主允许不得转载。

一、NSSet的创建和初始化

  • 创建一个空的NSSet集合:+ (void)set;

  • 用数组来创建NSSet集合:+ (id)setWithArray:(NSArray *)array;

  • 创建具有一个元素的集合:+ (id)setWithObject:(id)object;

  • 创建具有多个元素的集合:+ (id)setWithObjects:(id)firstObj, ...;

  • 用集合来创建集合:+ (id)setWithSet:(NSSet *)set;

  • 初始化空集合:- (id)init;

  • 用数组来初始化集合:- (id)initWithArray:(NSArray *)array;

  • 初始化具有多个元素的集合:- (id)initWithObjects:(id)firstObj, ...;

  • 集合初始化集合:- (id)initWithSet:(NSSet *)set;

二、NSSet的操作

  • 向集合中添加一个新元素,返回添加新元素后的新集合:- (NSSet *)setByAddingObject:(id)anObject;

  • 使用NSSet向集合中添加多个元素,返回添加新元素后的新集合和:- (NSSet *)setByAddingObjectsFromSet:(NSSet *)other;

  • 使用NSArray向集合中添加多个元素,返回添加新元素后的新集合和:- (NSSet *)setByAddingObjectsFromArray:(NSArray *)other;

  • 返回集合中的元素个数:- (unsigned)count;

  • 以NSArray的形式返回集合中的所有元素:- (NSArray *)allObjects;

  • 返回集合中任意一个元素:- (id)anyObject;

  • 判断集合中是否包含某个元素:- (BOOL)containsObject:(id)anObject;

  • 判断集合中是否包含某个元素并返回: - (id)member:(id)object;

  • 判断集合是否是一个集合的子集:- (BOOL)isSubsetOfSet:(NSSet *)otherSet;

  • 判断两个集合是否存在交集:- (BOOL)intersectsSet:(NSSet *)otherSet;

  • 判断集合是否相等:- (BOOL)isEqualToSet:(NSSet *)otherSet;

  • 对集合进行过滤,返回满足条件的新的NSSet集合:- (NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate;

  • 对集合进行过滤,返回满足条件的新的NSSet集合(比上面的方法多了一个参数):- (NSSet *)objectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(id obj, BOOL *stop))predicate;

三、NSMutableSet的创建和初始化

NSMutableSet是NSSet的一个子类,所以NSSet中使用的方法,在NSMutableSet中也可以使用。此外,NSMutableSet也有自己的方法。

  • 创建具有固定长度的可变集合:+ (id)setWithCapacity:(unsigned)numItems;

  • 初始化具有固定长度的可变集合:- (id)initWithCapacity:(unsigned)numItems;

四、NSMutableSet的操作

  • 通过集合设置可变集合的内容:- (void)setSet:(NSSet *)otherSet;

  • 添加元素到可变集合中:- (void)addObject:(id)object;

  • 添加NSArray中的元素到可变集合中:- (void)addObjectsFromArray:(NSArray *)array;

  • 添加NSSet中的所有元素到可变集合中:- (void)unionSet:(NSSet *)otherSet;

  • 删除所有元素:- (void)removeAllObjects;

  • 删除指定的元素:- (void)removeObject:(id)object;

  • 删除集合中存在于另一个集合的元素:- (void)minusSet:(NSSet *)otherSet;

  • 获取两个集合中相同的元素:- (void)intersectSet:(NSSet *)otherSet;

NSSet的更多相关文章

  1. iOS笔记之NSSet

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

  2. Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区

    Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]init ...

  3. 一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  4. Foundation ----->NSSet

    1.集合类     NSString *s1 = @"zhangsan";     NSString *s2 = @"lisi";     NSString * ...

  5. 遍历NSArray, NSDictionary, NSSet的方法总结

    1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...

  6. OC NSSet

    OC NSSet 数组的特点: 有序的 Set的特点: 无序的,存储元素无重复(例:set中有两个元素'a' 输出时只输出一个a) NSSet初始化 NSSet * set = [[NSSet all ...

  7. Objective-C基础数据类型-NSSet[转]

    转自GISerYang 集合: 集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合. 集合是一种哈希表,运用散列算法 ...

  8. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

  9. IOS集合NSSet与NSMutableSet知识点

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

随机推荐

  1. 【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现

    本项目是一个系列项目,最终的目的是开发出一个类似京东商城的网站.本文主要介绍后台管理中的区域管理,以及前端基于easyui插件的使用.本次增删改查因数据量少,因此采用模态对话框方式进行,关于数据量大采 ...

  2. myeclipse eclipse 使用git插件访问github 的解决方案

    具体的步骤很多帖子都有写,这里不再赘述,需要说明的一点,git插件的版本很重要,在官网上下载的最新版本在MyEclipse8.5,MyEclipse9.1,MyEclipse10上面都没有成功. 这里 ...

  3. ASP.NET Core和Angular 2双剑合璧

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:两个还没有正式发布的东西一起用,是什么效果? 效果当然会很好了(我猜的),那么如何在A ...

  4. SAP 传感器辅助定位

    一.简述 SAP:Sensor Assist Position 传感器辅助定位.高通公司提供的技术方案,旨在提升当卫星信号较差或终端短暂丢失卫星信号时终端的定位能力.该方案可分为三个阶段,第一.二阶段 ...

  5. 网络科学 - 社区发现 Community structure and detection及其几个实现工具

    首先什么是社区(Community structure)呢?其实并不是指一个网络相互连接的部分,而是一个网络中链接“紧密的部分”,至于怎么定义紧密就有很多方法了. 社区发现算法可以参考下面的博客:博客 ...

  6. 《DSP using MATLAB》示例Example5.7

    代码: x = [1, 1, 1, 1, zeros(1,4)]; N = 8; % zero-padding operation X_DFT = dft(x,N); % DFT of x(n) ma ...

  7. Codeforces Round #354 (Div. 2)

    贪心 A Nicholas and Permutation #include <bits/stdc++.h> typedef long long ll; const int N = 1e5 ...

  8. Bulk_Collect_Performance 比较

    上一篇讲到了调用集锦,这篇关注一下性能问题吧. DECLARE CURSOR c_tool_list IS SELECT descr d1 FROM hardware; l_descr hardwar ...

  9. Working in Singapore

    这篇blog主要是想说说最近以及将来一年的时间需要在Singapore工作的感受.你可能以及猜到了,我现在写这篇blog是在Singapore的Office里面. 在一个月之前还在成都工作,每天9:0 ...

  10. comebotree树

    comebotree树: java: @RequestMapping(value="/combobox.do") public @ResponseBody String combo ...