NSSet、NSMutableSet基本用法
NSSet、NSMutableSet基本用法
在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个。
一.不可变集合NSSet
1.NSSet的初始化
创建一个集合
NSSet *set1 = [[NSSet alloc] initWithObjects:@"one", @"two", nil];
通过数组的构建集合
NSArray *array = [NSArrayWithObjects:@"1", @"2", @"3", nil];
NSSet *set2 = [[NSSet alloc] initWithArray:array];
通过已有集合构建集合
NSSet *set3 = [[NSSet alloc] initWithSet:set2];
2.NSSet常用方法
集合中对象的个数
int count = [set3 count];
以数组的形式返回集合中所有的对象
NSArray *allObjects = [set3 allObjects];
返回集合中的任意一个对象
id object = [set3 anyObject];
判断两个集合的元素中有包含的对象,包含返回YES,否则为NO
BOOL isContain = [set4 containsObject:@"2"];
判断两个集合的元素是否有相等的对象,存在返回YES,否则为NO
BOOL isIntersect = [set4 intersectsSet:set2];
判断两个集合的元素是否完全匹配,匹配返回YES,否则为NO
BOOL isEqual = [set4 isEqualToSet:set5];
集合4是否是集合5的子集合,如果是返回YES,否则为NO
BOOL isSubset = [set4 isSubsetOfSet:set5];
创建一个新的集合2,集合2有两个对象
NSSet *set1 = [NSSet setWithObjects:@"a",nil];
NSSet *set2 = [set1 setByAddingObject:@"b"];
通过已有的两个集合,创建新的一个集合
NSSet *set7 = [NSSet setWithObjects:@"a",nil];
NSSet *set8 = [NSSet setWithObjects:@"z",nil];
NSSet *set9 = [set7 setByAddingObjectsFromSet:set8];
通过已有的集合和数组对象,创建一个新的集合
NSArray *array = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];
NSSet *set10 = [NSSet setWithObjects:@"z",nil];
NSSet *set11 = [set10 setByAddingObjectsFromArray:array];
二、可变集合NSMutableSet
常用方法
创建一个空的集合
NSMutableSet *set1 = [NSMutableSet set];
NSMutableSet *set2 = [NSMutableSet setWithObjects:@"1",@"2",nil];
NSMutableSet *set3 = [NSMutableSet setWithObjects:@"a",@"2",nil];
集合2减去集合3中的元素,集合2最后元素只有1个
[set2 minusSet:set3];
集合2与集合3中元素的交集,集合2最后元素只有1个
[set2 intersectSet:set3];
集合2与集合3中的元素的并集,集合2最后元素只有3个
[set2 unionSet:set3];
将空集合1设置为集合3中的内容
[set1 setSet:set3];
根据数组的内容删除集合中的对象
[set2 addObjectsFromArray:array];
[set2 removeObject:@"1"];
[set]2 removeAllObjects];
NSSet、NSMutableSet基本用法的更多相关文章
- NSArray,NSMutable和NSSet,NSMutableSet和NSDictionary,NSMutableDictionary用法
开始编写应用程序的代码时,可以利用大量的 Objective-C 框架.其中,为所有应用程序提供基本服务的 Foundation 框架尤为重要.Foundation 框架包括表示基本数据类型的值类(如 ...
- NSDictionary NSMutableDictionary NSSet NSMutableSet
//description只是返回了一个字符串 // [person description]; // //如果想要打印需要NSLog // NSLog(@"%@& ...
- 集合对象(NSSet,NSMutableSet,NSIndexSet)
NSArray:有序的集合,NSSet:无序的集合,散列存储. 但是NSSet保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表.NSMutableSet是NSSet的子 ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- NSDictionary和NSMaptable, NSArray,NSSet,NSOrderedSet和NSHashTable的区别
NSSet, NSDictionary, NSArray是Foundation框架关于集合操作的常用类, 和其他标准的集合操作库不同, 他们的实现方法对开发者进行隐藏, 只允许开发者写一些简单的代码, ...
- [OC Foundation框架 - 21] NSSet集合 & 集合之间的转换
A.NSSet 跟NSArray一样,不可变 NSArray 自然顺序 NSSet是无序的 NSSet不允许存入重复元素,可以用来过滤重复元素 也有可变的NSMutableSet B.集合转换 ...
- IOS中数组的使用(NSArray, NSSet, NSDictionary)
一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...
- NSArray, NSSet, NSDictionary
一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...
- OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)
//一: 迭代器 //数组 NSArray *arr=@[@"1",@"2",@"3",@"4",@"5&qu ...
随机推荐
- 转:java日志组件介绍(common-logging,log4j,slf4j,logback )
原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging common-logging是 ...
- linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)
linux ubuntu系统下,adb不是内部命令 原文地址 linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开 ...
- du 命令,对文件和目录磁盘使用的空间的查看
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...
- The connection to adb is down, and a severe error has occured.
启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有ad ...
- RDO部署openstack(2)
配置ML2和VXLAN 1. 安装和配置Neutron ML2 框架 (1) 安装在控制节点上(运行Neutron-server的节点) service neutron-server stop y ...
- HackerRank "Training the army" - Max Flow
First problem to learn Max Flow. Ford-Fulkerson is a group of algorithms - Dinic is one of it.It is ...
- android学习笔记一——简介
android 是由Andy Rubin创立的一个手机操作系统,后被google收购. google希望同各方共同建立一个标准化.开放式的移动电话软件平台,从而在移动产业内形成了一个开放式的操作平台. ...
- TMS320C54x系列DSP的CPU与外设——第3章 存储器
第3章 存储器 本章介绍了TMS320C54x DSP存储器的构成和操作.一般来说,C54x器件共有192K 16位字的存储窨,这个空间分成3个专用的部分:64K字程序.64K字数据和64K字I/O ...
- 黄聪:走进wordpress do_action函数
再看do_action函数.位于plugin.php352行.我把源码放在西街口这里,略去了其它辅助处理的语句. 如下: function do_action($tag, $arg = '') { ...
- BestCoder Round #86 部分题解
Price List 题意: 有n件商品,每天只能买一件,并且会记录账本,问有多少次一定记多了? 题解: 就是求和,最后如果大于和就输出1,否则0. 代码: #include <bits/std ...