集合大家都学过,就是里面的元素具有:确定性、无序性、互异性。

在OC中的集合主要理解的是后面的两个性质。

另外,OC中的NSCountedSet集合可以统计元素在集合中出现的次数,是数学中集合的扩展。

全部源代码为:

#import<Foundation/Foundation.h>intmain(intargc,constchar*argv[]){@autoreleasepool{//集合的特点//1.集合是无序的//2.集合中的元素都是互异的,不可以重复,如果有重复的元素,则识别为一个元素//1.创建一个NSSet对象NSSet*set=[[NSSetalloc]initWithObjects:@"aa",@"bb",@"cc",@"dd",@"aa",nil];NSLog(@"set:%@",set);//2.求集合元素个数NSUIntegercount=[setcount];NSLog(@"count=%lu",count);//3.获得集合的元素//(1)获得全部元素NSArray*members=[setallObjects];NSLog(@"%@",members);//(2)获得单一元素//anyObject随意取一个元素NSString*str1=[setanyObject];NSString*str2=[setanyObject];NSString*str3=[setanyObject];NSString*str4=[setanyObject];NSLog(@"str=%@,%@,%@,%@",str1,str2,str3,str4);//4.判断集合中是否包含某个对象。BOOLhave=[setcontainsObject:@"cc"];NSLog(@"have=%d",have);//NSMutableSet//1.创建一个NSMutableSet对象NSMutableSet*mSet=[[NSMutableSetalloc]initWithObjects:@"aa",@"bb",@"cc",@"cc",@"dd",nil];//2.添加@"ff"到mSet集合中[mSetaddObject:@"ff"];NSLog(@"mSet=%@",mSet);//3.移除掉@"cc"[mSetremoveObject:@"cc"];NSLog(@"remove:%@",mSet);//NSCountedSetNSCountedSet*cSet=[[NSCountedSetalloc]initWithObjects:@"aa",@"bb",@"cc",@"cc",@"dd",@"cc",@"dd",nil];NSLog(@"cSet:%@",cSet);//移除@"cc",//removeObject:对于NSCountedSet对象而言,移除只能移除一个对象,而对于NSMutableSet而言,移除会将所有相同的对象全部移除。[cSetremoveObject:@"cc"];NSLog(@"remove:%@",cSet);//添加@"ff"//addObject:对于NSCountedSet对象而言,添加对象会增加对象在集合中出现的次数,而对于NSMutableSet而言,如果添加的对象已经存在于集合中,则不会再添加。[cSetaddObject:@"ff"];[cSetaddObject:@"dd"];NSLog(@"add:%@",cSet);//获得某个对象在集合中出现的次数NSUIntegercountInSet=[cSetcountForObject:@"dd"];NSLog(@"count=%lu",countInSet);//快速遍历(快速枚举)for(NSString*elementinmSet){NSLog(@"%@",element);}}return0;}

本文介绍了OC中的基本集合、可变集合、可计数集合的相应的方法,希望对大家的学习有所帮助。