集中类
2015-10-30 10:25
141 查看
//1.创建集合
//NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作
NSArray * array = [[NSArray alloc] init];
特性:
1.数组中可以存储不同类型的对象
2.数组实际上存储的时对象的地址,同样也可以存储数组的地址
3.存储自定义的对象 (最好都给我重写 description方法)
4.数组中存储基本数据类型, (如果你要在数组中存储基本数据类型,请包装好了之后再去存 NSNumber)
5.注意不要把nil值存储到NSArray中,会导致数据丢失
3.使用自定义对象排序 :如果你向给你自己定义的对象排序,必须根据某一个属性来排序,
字典是以键值对的形式来存储数据 key value
字典的顺序不是按照存储时候的顺序。
字典中可以存任意数据类型
//NSSet是无序的
//注意:这个是最为重要的功能 NSSet中不能够存储重复的数据,可以用它来去除重复的值
//NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作
NSArray * array = [[NSArray alloc] init];
//2.通过构造方法的方式创建一个NSArray //在创建一个NSArray的时候,集合的最后一个元素一定是nil,判断nil决定集合的结尾 NSArray * array1 = [NSArray arrayWithObjects:@"one",@"two",@"three", nil]; NSArray * array2 = [[NSArray alloc] initWithObjects:@"one",@"two",number, nil]; NSArray * karray = @[@"a",@"b",@"c"]; NSString * kstr = karray[0];//访问元素位置 //数组的index时从0开始的 NSString * str = [array objectAtIndex:0]; NSLog(@"str %@",str); //获得数组的元素个数 NSUInteger arrayCount = [array count]; // 判断数组中是否存在某个对象 BOOL isContain = [array containsObject:id];
特性:
1.数组中可以存储不同类型的对象
2.数组实际上存储的时对象的地址,同样也可以存储数组的地址
3.存储自定义的对象 (最好都给我重写 description方法)
4.数组中存储基本数据类型, (如果你要在数组中存储基本数据类型,请包装好了之后再去存 NSNumber)
5.注意不要把nil值存储到NSArray中,会导致数据丢失
1.2:数组排序:
1.使用sortedArrayUsingSelector NSArray * array = @[@"b",@"d",@"a",@"z"]; array = [array sortedArrayUsingSelector:@selector(compare:)]; 2.使用block方式排序 array2 = [array2 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { //obj1 compare obj2 就是正序排序 //obj2 compare obj1 就是倒序排序 return [obj2 compare:obj1]; }];
3.使用自定义对象排序 :如果你向给你自己定义的对象排序,必须根据某一个属性来排序,
//sortDescriptorWithKey 参数要的就是你对象中,要依据哪个属性来排序,你就把哪个属性的名字当成key传入 //ascending YES表示正序 NO表示倒叙 NSSortDescriptor * d1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO]; NSSortDescriptor * d2 = [NSSortDescriptor sortDescriptorWithKey:@"year" ascending:NO]; //如果你要使用多个属性进行排序,默认在前面的NSSortDescriptor优先级比较高 NSArray * descripts = @[d2,d1]; array3 = [array3 sortedArrayUsingDescriptors:descripts];
1.3:可变数组:
//1.创建可变数组 NSMutableArray * array = [[NSMutableArray alloc] initWithCapacity:0]; //1.数组中加入元素 [array addObject:str1]; //2.指定对象插入的位置 [array insertObject:str1 atIndex:2]; //3.删除 会通过对象,删除数组中所有的同一个地址的对象 [array removeObject:str1]; //4.通过索引的方式删除对象,超出了数组的count值,那么就会导致异常 index beyond bounds [array removeObjectAtIndex:0]; [array addObject:str2]; [array addObject:str3]; [array addObject:str1]; //5.删除数组中所有的元素 [array removeAllObjects];
第二:NSDictionary
第一:NSDictionary字典是以键值对的形式来存储数据 key value
字典的顺序不是按照存储时候的顺序。
字典中可以存任意数据类型
//1.创建字段,不可变的 NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"apple",@"name", nil]; //2.快捷创建方式 NSDictionary * dic2 = @{ @"one":@"1",@"two":@"2"}; //4.获得字典的长度 dic.count //5.从字典中取值 NSString * str = [dic3 objectForKey:@"one"]; //6.遍历 //6.1取出所有的key值 NSArray * allkeys = [dic3 allKeys]; for (int i = 0; i < allkeys.count; i++) { NSString * key = [allkeys objectAtIndex:i]; //如果你的字典中存储的多种不同的类型,那么最好用id类型去接受它 id obj = [dic3 objectForKey:key]; } //6.2.枚举器 NSEnumerator * enumerator = [dic3 objectEnumerator]; id value; while (value = [enumerator nextObject]) { NSLog(@"value %@",value); }
第三:NSSet
//NSArray 自然顺序//NSSet是无序的
//注意:这个是最为重要的功能 NSSet中不能够存储重复的数据,可以用它来去除重复的值
//创建 NSString * str1 = @"one"; NSString * str2 = @"two"; NSString * str3 = @"three"; NSSet * set = [[NSSet alloc] initWithObjects:str1,str2,str3,str1, nil]; //4.遍历 NSEnumerator * enumerator = [set objectEnumerator]; NSString * value; while (value = [enumerator nextObject]) { NSLog(@"value %@",value); } //1 创建可变集合NSMutableSet NSMutableSet * muSet = [[NSMutableSet alloc] init]; //2.增加值 [muSet addObject:str1]; //3.删除 [muSet removeObject:str1]; //4.删除所有 [muSet removeAllObjects]; //5.遍历 NSEnumerator * en = [muSet objectEnumerator]; NSString * value; while (value = [en nextObject]) { NSLog(@"value %@",value); }
综合:集合相互转换
//1.NSArray 转换成 NSMutableArray NSArray * array = @[@"one",@"two",@"three"]; NSMutableArray * muArray = [NSMutableArray arrayWithArray:array]; NSLog(@"muarray %@",muArray); //2.NSDictonary 转换成 NSMutableDictionary NSDictionary * dic = @{@"one":@"1",@"two":@"2"}; NSMutableDictionary * muDic = [NSMutableDictionary dictionaryWithDictionary:dic]; NSLog(@"mudic %@ ",muDic); //3.NSset 转换成 NSMutableSet NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two", nil]; NSMutableSet *muSet = [NSMutableSet setWithSet:set]; NSLog(@"muSet %@",muSet); //4.NSArray 转换成NSSet NSMutableSet * muSet2 = [NSMutableSet setWithArray:array]; NSLog(@"muSet2 %@",muSet2); //5.NSDictionary 转化成NSArray NSArray * allkeys = [dic allKeys]; NSLog(@"allkeys %@",allkeys); NSArray * allValues = [dic allValues]; NSLog(@"allValues %@",allValues); //6.字符串转换成数组 NSString * str = @"www.itacast.cn"; NSArray * strArray = [str componentsSeparatedByString:@"."]; NSLog(@"strArray %@",strArray);
相关文章推荐
- net大型分布式电子商务架构说明
- Oracle 手动创建数据库步骤详解
- 中断与异常详解(二)
- C语言整理-11
- TypeScript学习-接口
- MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
- 如何应对activity被kill
- eclipse背景颜色修改插件color theme
- asp.net ajax请求总结
- C# 哈希表
- 一根香蕉防治八种病
- 恢复sudo的权限的命令
- 3-5年的PHPer常见的面试题
- 刚刚从微博转到博客,筛选一下不是随手记录的东西转过来,这是一个tableviewcontroller的发现
- 【递归】:poj2698,八皇后问题
- 安卓源码--添加root权限
- C语言整理-10
- pjsip项目概要及c语言面向对象方法实现
- spring web mvc 详解
- 有关报表服务器运行正确,但嵌入到网页中提示因 HTTP 状态 401 失败: Unauthorized。