黑马程序员——Foundation框架——集合类(NSSet、NSArray等)(二)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

NSSet数组和子类NSMutableSet的基本操作

NSSet和NSArray都是不可变数组,一旦创建就无法改变。NSSet是无序的集合简单操作

// 创建NSSet集合
NSSet *set = [NSSet set]; // 一旦创建为空永远为空
NSSet *set2 = [NSSet setWithObjects:@"Jack",@"Rose",@"Jim",nil];
    
// 随机获取NSSet集合中的元素
NSString *str = [set2 anyObject];
NSLog(@"%@",str);
NSMutableSet的简单操作

创建可变set集合

NSMutableSet *mutableSet = 【NSMutableSet set];
为set添加集合
[mutableSet addObject:@"Jack"];
[mutableSet addObject:@"Rose"];
删除元素
[mutableSet removeObject:@"Jack"];
NSArray和NSSet数组的对比

1,都可以存放任意类型的OC对象集合,都不能存放基本数据类型类型

2,本身都是不可变的,但是自类都是可变的

3,NSArray是有序的集合,NSSet是无序的集合

NSDictionary和NDMutableDictionary

NSDictionary和他的子类NDMutableDictionary都是以key/value的形式存在的,NSDictionary本身为不可变集合

NSDictionary也是无序集合

字典集合中存储的值时以键值对的形式存在的,如果存在相同的key那么后面的key的值会被覆盖。但是允许value重复

NSDictionary的基本操作

常见创建NSDictionary集合的四种方式

创建一个空的字典集合类型

NSDictionary *dic = [NSDictionary dictionary ];
创建只有一个值得字典集合
NSDictionary *dic1 = [NSDictionary dictionaryWithObject :@"Jack " forKey :@"name "];
创建多个值得字典集合
NSArray *keys = @[@"name ",@"address",@"e-mail"];
NSArray *values = @[@"Jack",@"北京",@jack @163.com";
NSDictionary *dic3 = [NSDictionary dictionaryWithObject :values  forKey :keys];
通过键值对的方式创建
NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:
                          @"Jack",@"name",
                          @"北京",@"address",
                          @"jack@163.com",@"e-mail",nil];
类似于数组的创建方式(推荐使用)
NSDictionary *dic5 = @{@"name":@"Jack",
                           @"address":@"北京",
                           @"e-mail":@"jack@163.com"};
取值:根据相应的key去除对象的值
NSString *name = [dic1 objectForKey:@"name"]; // 返回 Jack
返回键值对的个数
NSUInteger count = dic5.count; // 返回 4

遍历NSDictionary数组两种方式

第一种方式:获取字典中所有的键

 NSArray *allKeys = [dic5 allKeys]; // 获取的键在数组中是无序的
    
for (int i = 0; i < dic5.count; i++) {
    NSString *key = allKeys[i];
    NSString *value = dic5[key];
    NSLog(@"%@-->%@",key,value);
}
第二种方式:将字典中的键值对传递给block中的key和obj
[dic5 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    NSLog(@"%@-->%@",key,obj);
// 遍历一次立即停止 *stop = YES;
}];

NDMutableDictionary的基本操作

创建可变字典

NDMutableDictionary *mutableDic  = [NDMutableDictionary dictionary ];
// NSMutableDictionary *mutableDic2 = @{@"name",@"Rose",@"address",@"北京"}; 错误的写法因为右边返回的是不可变的字典
为可变字典添加元素
[mutableDic setObject:@"Rose" forKey:@"name"];
[mutableDic setObject:@"北京" forKey:@"address"];
移除字典中的元素
[mutableDic removeAllObjects];
[mutableDic removeObjectForKey:@"name"];
打印
NSLog(@"%@",mutableDic); // 输出:address = "\U5317\U4eac"; name = Rose; \U5317\U4eac 就是北京存储的形式
示例:设计一个通讯录里面包含了四个人的姓名、电话、地址
NSArray *friends = @[
         @{@"name":@"张三",@"phone":@"13993214321",@"address":@"北京"},
         @{@"name":@"李斯",@"phone":@"13498766789",@"address":@"上海"},
         @{@"name":@"王武",@"phone":@"15898766789",@"address":@"天津"},
         @{@"name":@"赵柳",@"phone":@"18798766789",@"address":@"南京"}];
获取‘李斯’的通讯录信息
NSDictionary *dic = friends[1];
NSLog(@"%@",dic);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值