设为首页 加入收藏

TOP

ObjectC----字典类和集合类以及快速枚举和OC中的数组排序(一)
2015-11-19 23:07:25 来源: 作者: 【 】 浏览:12
Tags:ObjectC---- 字典 类和 集合 以及 快速 枚举 排序

?

?

?

// 不可变字典

// 字典是适用于存放键值对的一种集合,里面的元素必须是对象类型

?

// 字典是无序的

?

// 字典赋值

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"guozai",@"name",@"nan",@"sex",@"14",@"age" ,nil];

// 直接打印字典名就可以

NSLog(@"%@",dic);

?

// 取出来的键值都用NSString* 指向

NSString *age = [dic objectForKey:@"age"];

NSLog(@"%@",age);

NSString *nam = [dic objectForKey:@"name"];

NSLog(@"%@",nam);

// NSString * sex = [dic objectForKey:@"sex"];

NSLog(@"%@",[dic objectForKey:@"sex"]);

?

// 获取所有的key值

NSArray * keys = [dic allKeys];

//直接打印数组名

NSLog(@"%@",keys);

?

// 获取所有的value值

NSArray * objects = [dic allValues];

NSLog(@"%@",objects);

?

?

?

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

// 可变字典

?

// 根据已有字典创建新字典

NSMutableDictionary *mulDic = [NSMutableDictionary dictionaryWithDictionary:dic];

?

// 添加键值对 score->100

[mulDic setObject:@"100" forKey:@"score"];

NSLog(@"%@",mulDic);

?

// 删除键值对sex->nan

[mulDic removeObjectForKey:@"sex"];

NSLog(@"%@",mulDic);

?

// 修改键值对的值,其实就是添加的方法设置就行

[mulDic setObject:@"13" forKey:@"age"];

NSLog(@"%@",mulDic);

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

// 遍历字典

?

NSArray * allkeys = [mulDic allKeys];

for (int i = 0; i < [allkeys count]; i ++) {

// 获取下标对应的key

NSString * key = [allkeys objectAtIndex:i];

// 根据key获取value

NSString * value = [mulDic objectForKey:key];

NSLog(@"%@",value);

}

?

// 或则直接用allvalue方法取出所有value

NSArray * allValue = [mulDic allValues];

for (int i = 0; i < [mulDic count]; i ++) {

NSLog(@"%@",[allValue objectAtIndex:i]);

}

?

/*

1字典是适用于存放键值对的一种集合,里面的元素必须是对象类型,

2字典里面的key时唯一的,不能重复,但是value是可以重复的

3字典是一种无序集合,键值对顺序不确定,可以将字典理解成“下标是字符串的数组”

4字典通过key去值,设置值,修改值.遍历时,可以先便利所有的key,然后根据key值遍历value,或者直接通过allvalue方法遍历所有的值。

*/

?

?

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

// NSSet 集合

?

// 使用便利构造器定义set

NSSet *set = [NSSet setWithObjects:@"guozai",@"zaigguo",@"guoguo", nil];

// 使用初始化方法定义set

NSSet *set2 = [[NSSet alloc]initWithObjects:@"guozai",@"zaiguo",@"guoguo", nil];

?

NSLog(@"%@,%@",set,set2);

?

// 获取所有元素,并打印

NSArray * sets = [set allObjects];

NSLog(@"%@",sets);

?

for (int i = 0; i < [sets count]; i ++) {

NSLog(@"%@",[sets objectAtIndex:i]);

}

?

// 获取set中任意一个元素

?

NSString *str = [set anyObject];// anyObject方法并不保证随机,一般都是第一个 元素

NSLog(@"%@",str);

?

// 判断集合中是否包含某个元素

BOOL re = [set containsObject:@"guozai"];

if (re) {

NSLog(@"baohan");

}

else {

NSLog(@"bubaohan");

}

?

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

// NSMutableSet

?

// 根据已有集合创建新的集合

NSMutableSet * mulSet = [NSMutableSet setWithSet:set];

?

// 添加元素

[mulSet addObject:@"zaizai"];

NSLog(@"%@",mulSet);

?

// 删除元素

[mulSet removeObject:@"zaizai"];

NSLog(@"%@",mulSet);

?

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

?

// NSCountedSet 是NSMutableSet的子类,可用来计算重复次数

NSCountedSet *countedSet = [NSCountedSet setWithSet:mulSet];

[countedSet addObject:@"guozai"];

NSUInteger count = [countedSet countForObject:@"guozai"];

NSLog(@"%ld",count);

?

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

// 在使用快速枚举遍历集合中的元素时,不能对集合里面的元素进行增删操作,否则会崩溃

?

// 数组的快速枚举

NSMutableArray * arr = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

for (NSString *str in arr) {

NSLog(@"%@",str);

// 不能增删

}

?

// 字典的快速枚举

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"guozai",@"name",@"man",@"

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ObjectC----几个常用的类 下一篇用c语言实现 计算一个字符串中单..

评论

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