NSSet
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、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的更多相关文章
- iOS笔记之NSSet
一.简介 NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的, ...
- Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区
Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]init ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- Foundation ----->NSSet
1.集合类 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString * ...
- 遍历NSArray, NSDictionary, NSSet的方法总结
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth ...
- OC NSSet
OC NSSet 数组的特点: 有序的 Set的特点: 无序的,存储元素无重复(例:set中有两个元素'a' 输出时只输出一个a) NSSet初始化 NSSet * set = [[NSSet all ...
- Objective-C基础数据类型-NSSet[转]
转自GISerYang 集合: 集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合. 集合是一种哈希表,运用散列算法 ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- IOS集合NSSet与NSMutableSet知识点
NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下.而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的 ...
随机推荐
- C++ 定义全局数组
数组怎么用,全局数组就怎么用,只是他的作用域不一样才叫全局数组... 在A.h 或 A.cpp中定义char buf[10]; 如果在B.cpp要用,就在其开头中写成 extern char buf[ ...
- freemarker内置函数和用法
原文链接:http://www.iteye.com/topic/908500 在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Jav ...
- HDU 2069 Coin Change(完全背包变种)
题意:给你5种银币,50 25 10 5 1,问你可以拼成x的所有可能情况个数,注意总个数不超过100个 组合数问题,一看就是完全背包问题,关键就是总数不超过100个.所有我们开二维dp[k][j], ...
- sqlmap和burpsuite绕过csrf token进行SQL注入检测
利用sqlmap和burpsuite绕过csrf token进行SQL注入 转载请注明来源:http://www.cnblogs.com/phoenix--/archive/2013/04/12/30 ...
- 【算法杂谈】LJX的迪杰斯特拉算法报告
迪杰斯特拉(di jie qi)算法 这里有一张图: 假设要求从1号节点到5号节点的最短路.那么根据迪杰斯特拉算法的思想,我们先看: 节点1,从节点1出发的一共有3条路,分别是1-6.1-3.1-2. ...
- HDU-1171 Big Event in HDU
Big Event in HDU Problem Description Nowadays, we all know that Computer College is the biggest depa ...
- 查看IIS连接数
如果要想知道确切的当前网站IIS连接数的话,最有效的方法是通过windows自带的系统监视器来查看. 一.运行-->输入“perfmon.msc”. 二.在“系统监视器”图表区域里点击右键,然后 ...
- VMware与virtualbox安装centos7连接网络不可达问题解决笔记(连接网络)
我最初是安装vmware遇到访问不到网络,按网上的配置方法都不能解决.然后我感觉可能跟系统有关,我装的是centos,然后我试着在virtualbox上安装看遇到什么问题. 用virtualbox安装 ...
- linux系统安装(下)
Grub引导装载程序 目录简单介绍 /dev存放了设备文件 /dev/sad硬盘文件 root/install.log安装日志 root/kickstart包含这次安装信息,下次若需要相同安装可 ...
- O(n) 筛法求素数
var tot,i,j,k,m,n:longint; prime:array[0..100000] of boolean; p:array[0..100000] of longint;begin re ...