object-c集合总计

来源:互联网 发布:黑客摄像头监控软件 编辑:程序博客网 时间:2024/04/30 16:01
/**
*使用未排序的集合存储对象
*/
//NSSet NSMutableSet
/**
*两种创建对象方式
*1 alloc init
*2 setWithObjects
NSSet *set=[NSSet setWithObjects:@"Hello World",@Bonjour tout le monde",@Hola Mundo",nil];
/**
*创建结婚demo
*/
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
NSSet *set=[NSSet setWithObjects:@"Hello World",@"Bonjour tout le monde",@"Hola Munda",nil];
NSLog(@"set %@",set);
}
return 0;
}


//打印出来的内容:
set:{(
"Bonjour tout le monde",
"Hello World",
"Hola Mundo"
)}


/**
*获取集合中元素的数量
*方式:NSSet中的count属性
*/
/**
*count demo
*/
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
NSSet *set=[NSSet setWithObjects:@"Hello World",@"Bonjour tout le monde",@"Hola Mundo",nil];
NSUInteger count=set.count;
NSLog(@"The set contains %lu items",count);
}
return 0;
}
//输出内容
The set contains 3 items


/**
*比较集合
*/
NSSet *set1=[NSSet setWithObjects:@"A",@"B",@"C",@"D",@"E",nil];
NSSet *set2=[NSSet setWithObjects:@"D",@"E",@"F",@"G",@"H",nil];


//判断两个集合是否包含重叠的对象(集合相交)
//方式:intersectsSet函数返回值Bool
BOOL setsIntersect =[set1 intersectsSet:set2];
//判断某个集合包含的对象是否全部位于另一个集合中(是否是子集)
//方式:可以使用isSubsetOfSet
BOOL set2IsSubset=[set2 isSubsetOfSet:set1];
//判断两个集合是否相等(集合等价关系
//可以使用isEqualToSet
BOOL set1IsEqualToSet2=[set1 isEqualToSet:set2];
//判断某个对象是否位于集合中,
//方式:containsObject
BOOL set1ContainsD=[set1 containsObject:@"D"];


/**
*集合比较demo
*/
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
NSSet *set1=[NSSet setWithObjects:@"A",@"B",@"C",@"D",@"E",nil];
NSSet *set2=[NSSet setWithObjects:@"D",@"F",@"G",@"H",@"E",nil];
NSLog(@"set1 contains %@",set1);
NSLog(@"set2 containns%@",set2);
BOOL set1Intersect=[set1 intersectsSet:set2];
BOOL set2Intersect=[set2 intersectsSet:set1];
        BOOL set1EuqalToSet2=[set1 isEuqlToSet:set2];
BOOL setIsSubset=[set2 isSubsetOfSet:set1];
BOOL set1ContainsD=[set1 containsObject:@"D"];
NSLog(@"setsIntersect=%i,set2IsSubset=%i,set1IsEuqalSet2=%i,set1IsEqualToSet2,set1ContainsD);
}
return 0;
}
//输出信息:
set1 contains:{(
A,
D,
B,
E,
C,
)}
set2 contains:{(
H,
F,
D,
G,
E,)}
SETiNTESECT =1,SET2IsSubset=0,set1IsEqualToSet2=0,set1ContainsD=1




/**
*遍历集合
*
/
//方式1:NSSet中的allObjects将集合转换为数组,然后用哪个for-each循环遍历
//方式2:直接使用emumerateObjectsUsingBlock来处理集合中的每个对象
//方式3:NSSet还支持makeObjectsPerformSelector


for(NSStirng *s in [set allObjects]){
NSLog(@"value:%@",s);
}
[set enumerateObjectsUsingBlock:^(id obj,BOOL *stop){
NSLog(@obj=%@",obj);
}];


[set makeObjectsPerformSelector:@selector(description)];




/**
*遍历集合demo
*/
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
NSSet *set=[NSSet setWithObjects:@"Hello World",@"Bonjour tout le monde",@"Hola Mundo",nil];
for(NSString *s in [set allObjects]){
NSLog(@"value:%@",s);
}
[set enumerateObjectsUsingBlock:^(id obj,BOOL *stop){
NSLog(@"obj=%@",obj);
}];
[set makeObjectsPerformSelector:@selector(description)];
}
return 0;
}


//输出信息
value: Bonjour tout le monde
value:Hello World
value:Hola Mundo
obj =Bonjour tout le monde
obj=Hello World
obj=Hola Mundo


/**
*操作集合
*/
//方式:使用NSMutableSet
//添加对象 addObject
//删除对象 removeObject
NSMutableSet *set=[[NSMutableSet alloc]init];
[set addObject:@"Hello World"];
[set addObject:@"Bonjour tout le monde"];
[set addObject:@"Hola Mundo"];




[set removeObject:@"Bonjour tout le monde"];


#import <Foundation/Foundation.h>
int main(int argc,const char *arv[]){
@autoreleasepool{
NSMutableSet *set=[[NSMutableSet alloc]init];
[set addObject:@"Hello World"];
[set addObject:@"Bonjour tout le monde"];
[set addObject:@"Hola Mundo"];
NSLog(@"Objects added to set:%@",set);
[set removeObject:@"Bonjour tout le monde"];
NSLog(@"Object removed from set:%@",set);
[set removeAllObjects];
NSLog(@"All objects removed from set:%@",set);
}
return 0;
}


//输出信息
Object added to set:{(
"Bonjour tout le monde",
"Hello World",
"Hola Mundo"
});
Object removed from set:{(
"Hello World",
"Hola Mundo"
})
All objects removed from set:{(
)}
0 0