设为首页 加入收藏

TOP

Objective-C中的集合类(四)
2015-01-22 20:57:16 来源: 作者: 【 】 浏览:49
Tags:Objective-C 集合
rstObject, ...;
?
? ? ? ? ?? ? ?? ? ?? ? ?? ? ??便利构造器:+(id) setWithObjects: (id) firstObject, ...;
?
? ? ? ? ?? ? ?? ? ??(2)NSSet中也有-(NSUInteger) count 来获取元素的对象
?
? ? ? ? ?? ? ?? ? ??(3) 获取集合中的元素
?
? ? ? ? ?? ? ?? ? ?? ? ?? ? ?获取全部的集合元素,以数组的形式返回:-(NSArray *) allObjects;
?
? ? ? ? ?? ? ?? ? ?? ? ?? ? ??随进获取集合中的元素:-(id) anyObject;
?
? ? ? ? ?? ? ?? ? ??(4)判断两个Set是否相同 : - (BOOL) isEqualToSet: (NSSet *) otherSet;
?
? ? ? ? ?? ? ?? ? ??(5)判断一个元素是否在本集合中 -(BOOL) member: (id) obj;
?
?
?
? ? ? ? ?? ? ??Demo: ? ??
?
?
//set集合的操作
//便利初始化函数
NSSet *set1 = [[NSSet alloc] initWithObjects:@"aa", @"bb", @"cc", @"dd", nil];
//便利构造器
NSSet *set2 = [NSSet setWithObjects:@"AA", @"BB", @"CC", nil];
?
//获取集合中元素的个数
int count = (int) [set1 count];
NSLog(@"set1里面的元素的个数为:%d", count);
?
//遍历集合:把set集合转换为数组然后进行遍历
NSArray *setToArray = [set2 allObjects];
array_display(setToArray);
?
//随机获取Set中元素
id element = [set1 anyObject];
NSLog(@"随机获取其中的值%@", element);
?
//比较两个Set是否相等
if ([set1 isEqualToSet:set2] == NO) {
? ? NSLog(@"set1 != set2");
}
?
//查看一个元素是否在一个set中
if ([set1 member:@"aa"]) {
? ? NSLog(@"aa 在set1中");
}
?
?
? ? ?运行结果为:
?
2014-08-02 09:47:39.554 HelloOC[608:303] set1里面的元素的个数为:4
2014-08-02 09:47:39.555 HelloOC[608:303] CC
2014-08-02 09:47:39.555 HelloOC[608:303] AA
2014-08-02 09:47:39.555 HelloOC[608:303] BB
2014-08-02 09:47:39.555 HelloOC[608:303] 随机获取其中的值cc
2014-08-02 09:47:39.556 HelloOC[608:303] set1 != set2
2014-08-02 09:47:39.556 HelloOC[608:303] aa 在set1中
? ? ?
?
? ? ? ? ??2、可变Set: NSMutableSet
?
? ? ? ? ?? ? ??1.可变集合的实例化和初始化
?
? ? ? ? ?? ? ?? ? ??便利初始化函数: -(id) initWithCapacity :(NSUInteger) numItems;
?
? ? ? ? ?? ? ?? ? ??便利构造器:+(id) setWithCapacity: (NSUInteger) numItems;
?
?
?
? ? ? ? ?? ? ??2.往可变集合中添加元素
?
? ? ? ? ?? ? ?? ? ??-(void) addObject : (id) object;
?
?
?
? ? ? ? ?? ? ??3.删除集合中的对象
?
? ? ? ? ?? ? ?? ? ??-(void) removeAllObjects; 删除所有的对象;
?
? ? ? ? ?? ? ?? ? ??-(void) removeObjects: (id) object 删除其中某一个对象;
?
? ? ? ? ??demo:
?
//set可变集合
//便利初始化函数分配大小
NSMutableSet *mutableSet1 = [[NSMutableSet alloc] initWithCapacity:3];
NSMutableSet *mutableSet2 = [NSMutableSet setWithCapacity:3];
?
//添加元素
[mutableSet1 addObject:@"aaa"];
[mutableSet1 addObject:@"BBB"];
[mutableSet1 addObject:@"bbb"];
?
//删除元素
[mutableSet1 removeObject:@"BBB"];
?
//遍历Set
NSArray *setArray = [mutableSet1 allObjects];
array_display(setArray);
? ? ? ? ??运行结果:
?
?
2014-08-02 10:18:34.844 HelloOC[701:303] aaa
2014-08-02 10:18:34.844 HelloOC[701:303] bbb
? ? ? ? ??
?
?
?
四:把基本数据类型包装成对象
?
? ? ? ? ??前面不止一次的提到在OC中的集合类中是不能放基本数据类型的,那么我们如何把基本数据类型封装成对象呢? 在OC中给我们提供啦一个类专门来把基本数据类型封装成对象,这个类就是NSNumber.
?
? ? ? ? ?? ? ??1. NSNumber的用法如下
?
? ? ? ? ?? ? ?? ? ??把基本类型包装成对象的便利构造函数
?
? ? ? ? ?? ? ?? ? ?? ? ??-(id) initWithChar : (char) value;
?
? ? ? ? ?? ? ?? ? ?? ? ??-(id) initWithInt : (int) value;
?
? ? ? ? ?? ? ?? ? ?? ? ??-(id) initWithFloat : (float) value;
?
? ? ? ? ?? ? ?? ? ?? ? ??-(id) initWithBool: (BOOL) value;
?
? ? ? ? ?? ? ?? ? ??把基本数据类型包装成对象的便利构造器
?
? ? ? ? ?? ? ?? ? ?? ? ??+(id) numberWithChar : (char) value;
?
? ? ? ? ?? ? ?? ? ?? ? ??+(id) numberWithInt : (int) value;
?
? ? ? ? ?? ? ?? ? ?? ? ??+(id) numberWithFloat : (float) value;
?
?
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据结构C语言实现――线性链表 下一篇平衡二叉树(AVL)的实现,附可运..

评论

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