设为首页 加入收藏

TOP

OC:OC中的集合类-NSSet(二)
2015-01-21 11:09:24 来源: 作者: 【 】 浏览:16
Tags:集合 -NSSet

/*

NSSet 集合

在一个NSSet对象中,某个特定的对象只能出现一次。

NSSet对象最大的用处是检查某个对象是否存在。速度快

NSSet与NSArray比较

相同:1.都用来存放OC对象

2.都不可以直接存储基本数据类型、结构体、枚举

3.本身都不可变,但是都有一个可变的子类

区别:1.NSArray是有顺序的, NSSet是无序的

2.NSSet里面的元素是不重复的

*/

//========================================================

//创建一个空的set,里面不能再添加元素

// NSSet *set1 = [NSSet set];

//创建set,里面有一个元素

NSSet *set2 = [NSSet setWithObject:@"abc"];

//创建多个元素的set

Car *car1 = [Car new];

Car *car2= [Car new];

NSSet *set3 = [NSSet setWithObjects:car1,car2,@"abc", nil];

//得到set元素个数

NSUInteger count = set3.count;

[set3 count];

NSLog(@"%ld",count);

//打印set (打印出来的元素顺序不固定)

NSLog(@"%@",set3);

//获取set中全部的元素 返回值是NSArray

NSArray *ary = [set3 allObjects];

//取set中的一个元素 没有顺序,任意取出一个元素

[set3 anyObject];

//判断集合中是否包含某个对象

[set3 containsObject:@"abc"];//返回BOOL型

if([set3 containsObject:@"abc"])

{

NSLog(@"set 中有该对象");

}

else

{

NSLog(@"set 中不包含该对象");

}

[set3 member:@"abc"];//返回BOOL型

if([set3 member:@"abc"])

{

NSLog(@"set 中有该对象");

}

else

{

NSLog(@"set 中不包含该对象");

}

//==========================================================

// NSMutableSet 可变集合

//初始化可变集合

NSMutableSet *set4 = [NSMutableSet set];

//添加元素

[set4 addObject:[Car new]];

//把一个数组中的元素添加到当前set

NSArray *ary2 = @[@"jereh",@"ios"];

[set4 addObjectsFromArray:ary2];

NSLog(@"%@",set4);

//删除。由于没有顺序,所以不能按照索引位置删除确定的对象

//删除一个元素

[set4 removeObject:@"ios"];

//删除全部元素

[set4 removeAllObjects];

//遍历set(用快速遍历)

NSMutableSet *set5 = [NSMutableSet setWithObjects:@"a",@"b",@"c",@"d", nil];

NSArray *ary3 = @[@"jere"];

[set5 addObjectsFromArray:ary2];

[set5 addObjectsFromArray:ary3];

for (id obj in set5) {

NSLog(@"%@",obj);

}

//将一个集合的所有元素添加到当前集合

NSLog(@"%@",set4);

NSLog(@"%@",set5);

NSMutableSet *set6 = [NSMutableSet setWithObject:@"I love you."];

[set6 unionSet:set5];

NSLog(@"%@",set6);

//判断两个集合是否相等

if ([set5 isEqualToSet:set6] == YES) {

NSLog(@"两个集合相等");

}

else

{

NSLog(@"两个集合不相等");

}

//判断两个集合的交集是否存在至少一个元素

[set6 intersectsSet:set5]; //BOOL

[set6 intersectSet:set5]; //void

if ([set6 intersectsSet:set5] == YES) {

NSLog(@"两个集合有交集 ");

}

else

{

NSLog(@"两个集合没有交集");

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective-c单例模式的正确写法 下一篇C语言-数学-统计问题(Hdu 2563)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: