objective-C基础----字典,集合
来源:互联网 发布:网络名词 编辑:程序博客网 时间:2024/05/08 18:32
字典
字典用于保存具有映射关系(key - value)的数据的集合
对于name:张三 来讲,name就是key。key对应的value就是张三
一个key-value的组合被认为是一个条目,字典是存储key-value对的容器
特点:
1、与数组不同,字典靠key来存储数据,数组是通过下标存储元素
2、key不能重复,value必须是对象,(如果不是对象,有NSNumber、NSValue)
3、键值对在字典中是无序存储的
4、字典也有可变和不可变之分
5、不可变字典,字典一旦创建,键值对就不能修改,不可删除,不可添加。仅能读取key或value
6、字典中元素是成对出现的,不能出现单个元素个数
//可变字典
//添加、修改、删除
[mdic setObject:@"Mac mini"forKey:@"电脑"]; //电脑---key mini --- value
[mdic setValue:@"发夹"forKey:@"饰品"];
//修改key对应的value值
[mdic setObject:@"Mac mini"forKey:@"电脑"]; //电脑---key mini --- value
[mdic setValue:@"发夹"forKey:@"饰品"];
//修改key对应的value值
[mdic setValue:@"OPPO"forKey:@"手机"];
//setValue: forKey 什么时候添加新键值对 什么时候修改键值对
当字典中的没有这个key值的时候,setValue: forKey就是添加新的键值对
当字典中有这个key的时候,setValue: forKey 就是修改相应的key下边对应的value值
NSMutableArray *key1 = mdic.allKeys;
NSMutableArray *value5 = mdic.allValues;
for (inti = 0; i < mdic.count; i++) {
NSLog(@"key = %@ value = %@",[key1objectAtIndex:i], [value5objectAtIndex:i]);
}
//删除
[mdic removeObjectForKey:@"电脑"];
NSMutableArray *key1 = mdic.allKeys;
NSMutableArray *value5 = mdic.allValues;
for (inti = 0; i < mdic.count; i++) {
NSLog(@"key = %@ value = %@",[key1objectAtIndex:i], [value5objectAtIndex:i]);
}
//删除
[mdic removeObjectForKey:@"电脑"];
//通过key取value
NSMutableArray *keyof = mdic.allKeys;
for (inti = 0; i < mdic.count; i++) {
NSLog(@"key = %@ value = %@",keyof[i], [mdic valueForKey:keyof[i]]);
}
---------------------------------------------------------------------------
NSMutableArray *keyof = mdic.allKeys;
for (inti = 0; i < mdic.count; i++) {
NSLog(@"key = %@ value = %@",keyof[i], [mdic valueForKey:keyof[i]]);
}
---------------------------------------------------------------------------
集合
iOS中也有表示数学中表示集合的类,叫做NSSet
集合的特点
1、与数学中的集合我一样,集合中元素是唯一的(不能重复)
2、集合中元素是无序存储的
3、集合中元素必须是对象类型(如果是基本数据类型需要通过NSNumber,NSValue转化为对象类型)
4、iOS中集合有可变和不可变之分:NSSet和 NSMutableSet
NSSet *set = [[NSSetalloc]initWithObjects:@"shmily",@"豫剧",@"河南梆子",@"123456",@"粤剧",@"京剧",nil];
//获取集合元素个数,重复的元素会被覆盖,只算一个 ---------- 集合最大的特点
NSLog(@"%lu",(unsignedlong)set.count);
//获取集合中的某个对象
/*
如果集合中有这个元素就返回,没有就是nil
*/
NSString *name = [set member:@"京剧"];
NSLog(@"name = %@",name);
//containsObject: 判断集合中是否会由这个元素
BOOL ishavejing = [set containsObject:@"河南梆子"];
NSLog(@"%d",ishavejing);
BOOL ishaveyue = [set containsObject:@"余额"];
NSLog(@"%d",ishaveyue);
NSMutableArray *haih = [set allObjects]; //返回集合中所有的元素
for (inti = 0; i < haih.count; i++) {
NSLog(@"%@",haih[i]);
}
//anyObject 返回集合中某一个元素,不保证每次运行出来的结果都是随机的(第一次是随机的,以后都是固定的)
NSLog(@"--------%@--------",[setanyObject]);
iOS中也有表示数学中表示集合的类,叫做NSSet
集合的特点
1、与数学中的集合我一样,集合中元素是唯一的(不能重复)
2、集合中元素是无序存储的
3、集合中元素必须是对象类型(如果是基本数据类型需要通过NSNumber,NSValue转化为对象类型)
4、iOS中集合有可变和不可变之分:NSSet和 NSMutableSet
NSSet *set = [[NSSetalloc]initWithObjects:@"shmily",@"豫剧",@"河南梆子",@"123456",@"粤剧",@"京剧",nil];
//获取集合元素个数,重复的元素会被覆盖,只算一个 ---------- 集合最大的特点
NSLog(@"%lu",(unsignedlong)set.count);
//获取集合中的某个对象
/*
如果集合中有这个元素就返回,没有就是nil
*/
NSString *name = [set member:@"京剧"];
NSLog(@"name = %@",name);
//containsObject: 判断集合中是否会由这个元素
BOOL ishavejing = [set containsObject:@"河南梆子"];
NSLog(@"%d",ishavejing);
BOOL ishaveyue = [set containsObject:@"余额"];
NSLog(@"%d",ishaveyue);
NSMutableArray *haih = [set allObjects]; //返回集合中所有的元素
for (inti = 0; i < haih.count; i++) {
NSLog(@"%@",haih[i]);
}
//anyObject 返回集合中某一个元素,不保证每次运行出来的结果都是随机的(第一次是随机的,以后都是固定的)
NSLog(@"--------%@--------",[setanyObject]);
//可变集合
NSMutableSet *mset = [[NSMutableSetalloc]initWithObjects:@"夏商周",@"春秋",@"唐宋",@"元",@"唐宋",@"明",nil];
[msetaddObject:@"晚清"]; //添加
for (inti = 0; i < mset.count; i++) {
NSLog(@"%@",[msetallObjects][i]);
}
NSLog(@"----------------------------");
[msetremoveObject:@"元"]; //删除
for (inti = 0; i < mset.count; i++) {
NSLog(@"%@",[msetallObjects][i]);
}
NSMutableSet *mset = [[NSMutableSetalloc]initWithObjects:@"夏商周",@"春秋",@"唐宋",@"元",@"唐宋",@"明",nil];
[msetaddObject:@"晚清"]; //添加
for (inti = 0; i < mset.count; i++) {
NSLog(@"%@",[msetallObjects][i]);
}
NSLog(@"----------------------------");
[msetremoveObject:@"元"]; //删除
for (inti = 0; i < mset.count; i++) {
NSLog(@"%@",[msetallObjects][i]);
}
//计数集合
NSCountedSet *cset = [[NSCountedSetalloc]initWithObjects:@"跳绳",@"丢沙包",@"跳绳",@"踢毽子",@"打羽毛球",@"赛跑",@"打羽毛球",nil];
NSCountedSet *cset = [[NSCountedSetalloc]initWithObjects:@"跳绳",@"丢沙包",@"跳绳",@"踢毽子",@"打羽毛球",@"赛跑",@"打羽毛球",nil];
NSLog(@"%lu",cset.count);
NSUInteger count2 = [cset countForObject:@"跳绳"];//计算某个元素在集合中出现的个数(次数)
NSLog(@"%lu",count2);
0 0
- objective-C基础----字典,集合
- Objective-C---5---字典,集合
- Objective-C基础之字典
- Objective-C 基础集合类
- 【Objective-C基础】集合类
- Objective-C基础——字典
- Objective-c学习笔记06——字典与集合
- 【学习ios之路:Objective-C】字典.集合.
- Objective - C 字符串 数组 字典 集合的基本使用
- Objective-C ,ios,iphone开发基础:NSDictionary(字典) 和 NSMutableDictionary
- Objective-C(十三、字典类)——iOS开发基础
- objective-c 编程基础(3.7 Foundation框架之字典)
- Objective-C_数据字典,集合
- objective-c dictionary(字典)
- objective-c dictionary(字典)
- objective-c字典
- Objective-C 字典小结
- objective-c NSDictionary(字典)
- Python---xml
- OpenGL基于帧缓存FBO的离屏渲染
- [Leetcode]Serialize and Deserialize Binary Tree
- 技术人如何才能不焦虑
- vc在x64体系的一般传参数方式
- objective-C基础----字典,集合
- iOS——TabelView
- C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝
- 关于C中的内存分配问题
- 横向滑动加载更多的控件的实现
- 数字漩涡形输出
- 虚函数
- Oracle EBS 交叉币种(2)-应收交叉币种
- xutils的使用