Foundation框架中的动态集合
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Foundation框架中的动态集合相关的知识,希望对你有一定的参考价值。
看官们,我们在前面章回中介绍了Foundation框架中的静态集合,本章回中将介绍Foundation框架中的动态集合。
动态集合使用NSMutableSet类来表示,它是NSSet的子类,因此我们在上在章回中介绍过的相关内容也适用于动态集合,因为NSMutableSet类从父类NSSet继承了这些方法,此外它还有一些自己特有的方法:向集合中添加元素,删除集合中的元素以及集合复合操作。接下来我们依次做介绍这些方法。
向集合中添加元素
使用addObject:方法可以把参数中的对象添加到集合中,不过不能添加与集合元素相同的对象到集合中;
删除集合中的元素
使用removeObject:方法可以删除集合中的某个对象,被删除的对象通过该方法的参数来指定;
使用removeAllObjects方法可以删除集合中所有的元素,相当于清空集合;
以上操作都是针对单个集合进行的,下面介绍一下集合的复合操作,也就对两个集合进行操作:
setSet: //重置集合中的所有元素,相当于把集合中的所有元素替换为参数指定集合中的所有元素;
unionSet: //求两个集合的并集
intersectSet: //求两个集合的交集
minusSet: //求两个集合的差集
看官们,上面我们一直在介绍理论方面的知识,接下来我们介绍通过代码演示集合相关的操作。下面是具体的代码:
#import <Foundation/Foundation.h>
int main()
{
NSMutableSet *set1 = [NSMutableSet setWithObjects:@"aa",@"bb",nil];
NSMutableSet *set2 = [NSMutableSet setWithObjects:@"bb",@"cc",nil];
NSMutableSet *set3 = [NSMutableSet setWithObjects:@"aa",@"bb",nil];
NSLog(@" %@",set1);
NSLog(@" %@",set2);
//向集合中添加元素
[set1 addObject:@"cc"];
NSLog(@"after add 'cc' in set: %@",set1);
//删除集合中某个元素
[set1 removeObject:@"cc"];
NSLog(@"after remove 'cc' in set: %@",set1);
//删除集合中所有的元素
[set1 removeAllObjects];
NSLog(@"after remove all items of set: %@",set1);
//求并集
[set1 setSet:set3];
[set1 unionSet: set2];
NSLog(@"union sets: %@",set1);
//求交集
[set1 setSet:set3];
[set1 intersectSet: set2];
NSLog(@"intersect sets: %@",set1);
//求差集
[set1 setSet:set3];
[set1 minusSet: set2];
NSLog(@"minus sets: %@",set1);
return 0;
}
在代码中我们添加了相关的注释,以方便大家理解代码。程序中集合的元素比较少,大家可以直接判断出运行结果,因此我们就不展示程序运行结果了,不过大家一定要自己动手是运行程序,一边分析代码,一边对比程序运行结果是否符合代码分析的结果。
最后我们对本章回的内容做一个总结:
- 1.动态集合是静态集合的子集,因此它可以使用静态集合的所有操作;
- 2.使用addObject:方法向集合中添加元素,注意不能添加相同的元素到集合中;
- 3.使用removeObject:方法删除集合中某个元素;
- 4.使用removeAllObjects方法可以删除集合中所有的元素;
- 5.集合可以进行复合操作,主要包括:重置集合,求并集、求交集和求差集;
- 6.以上所有的操作都会修改原来集合中的内容,而不是返回一个新的集合;
看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解!
以上是关于Foundation框架中的动态集合的主要内容,如果未能解决你的问题,请参考以下文章