一:集合的基本概念
Foundation框架中,提供了NSSet類,它是一組單值對象的集合,且NSSet實例中元素是無序,同一個對象只能保存一個,
并且它也分為可變和不可變的集合對象(可變集合對象,NSMutableSet)
二:不可變集合-NSSet
1:初始化(類似數組的創建)
//類似與數組的構建,直接創建一個集合
NSSet *set1=[[NSSet alloc]initWithObjects:@"one",@"tow", nil]; NSLog(@"%@",set1);
2:通過數組的構建集合
//通過數組進行構建 NSArray *array1=[NSArray arrayWithObjects:@"one",@"tow", nil]; NSSet *set2=[NSSet setWithArray:array1]; NSLog(@"%@",set2);
3:通過已有集合進行構建
//通過已有的集合進行構建NSSet *set3=[NSSet setWithSet:set2]; NSLog(@"%@",set3);3:集合對象的數量
//集合中常用方法NSInteger *count=[set3 count]; NSLog(@"%ld",count);4:返回集合中的所有元素
//集合中所有的元素NSArray *array2 =[set3 allObjects]; NSLog(@"%@",array2);5:返回集合中任意一個元素
//返回集合中任意一個元素NSString *str=[set3 anyObject]; NSLog(@"%@",str);6:查詢集合中是否包含某個元素
//查詢集合中是否存在某個元素 Boolean result1=[set3 containsObject:@"two"]; if(result1){ NSLog(@"包含two"); }else{ NSLog(@"不包含two"); }7:查詢集合和集合是否有交集
//查詢集合間是否有交集BOOL result2= [set1 intersectsSet:set2]; NSLog(@"%d",result2);8:集合的匹配
//判斷集合間是否匹配BOOL result3=[set1 isEqualToSet:set2]; NSLog(@"%d",result3);9:是否是一個集合的子集
//是否是一個集合的子集BOOL result4=[set1 isSubsetOfSet:set2]; NSLog(@"%d",result4);10:在一個集合中添加一個新元素 返回新的集合
NSSet *set5=[NSSet setWithObjects:@"one",nil];NSSet *appSet=[set5 setByAddingObject:@"tow"]; NSLog(@"%@",appSet);11:在一個集合中添加一個集合,返回新的集合
//在一個集合中添加一個集合NSSet *set6=[NSSet setWithObjects:@"1",@"2", nil]; NSSet *appSet1=[set5 setByAddingObjectsFromSet:set6]; NSLog(@"%@",appSet1);12:在一個集合中添加一個數組,返回新的集合
//在一個集合中添加一個數字NSArray *appArray=[NSArray arrayWithObjects:@"x",@"y", nil]; NSSet *appSet2=[set5 setByAddingObjectsFromArray:appArray]; NSLog(@"%@",appSet2);三:可變集合--NSMutableSet
1:創建初始化可變集合
//創建初始化可變集合NSMutableSet *mutableSet1=[NSMutableSet Set];//空集合 NSMutableSet *mutableSet2=[NSMutableSet setWithObjects:@"1",@"2", nil]; NSMutableSet *mutableSet3=[NSMutableSet setWithObjects:@"a",@"2", nil];2:從集合中去除相同的元素
//兩個集合去除相同的部分[mutableSet2 minusSet:mutableSet3]; NSLog(@"%@",mutableSet2);3:求兩個集合的公共元素
//求兩個集合相同的元素[mutableSet2 intersectSet:mutableSet3]; NSLog(@"%@",mutableSet2);4:合并兩個集合
//兩個集合進行合并[mutableSet2 unionSet:mutableSet3]; NSLog(@"%@",mutableSet2);