1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等NSArray 用于对象有序集合(相当于是数组)NSSet 用于对象无序集合NSDictionary用于键值映射

////       集合

////        初始化

//        NSArray *name=[NSArray arrayWithObjects:@"lisi",@"aulu",@"alji",@"dakk", nil];

//        

////        集合元素个数

//        NSLog(@"%ld",[name count]); //集合元素个数。

//       NSString *name1 =[name objectAtIndex:1];//获取指定位置的集合元素。

//        NSLog(@"%@",name1);

////        循环遍历集合

////        i<[name count]=i<name.count

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

////            NSLog(@"%@",name[i]);

////        }

////        快速枚举 循环遍历集合

//        for (NSString *str in name) {

//            NSLog(@"%@",str);

//        }

//        

////        可变集合添加元素。

//        NSMutableArray *name2=[NSMutableArray arrayWithCapacity:0];

//        [name2 addObject:@"zhangsds"];

//        [name2 addObject:@"lisi"];

////        插入指定位置元素

//        [name2 insertObject:@"dasd" atIndex:1];

//        for (NSString *name3 in name2) {

//            NSLog(@"%@",name3);

//        }

//        

//        

//        NSMutableArray *test1=[NSMutableArray array];

//        NSArray *test2=@[@"das",@"adsa",@"casf"];

//        [test1 addObjectsFromArray:test2];

//        [test1 addObject:@"dasf"];

////        删除集合元素

//        [test1 removeObject:@"das"];

//        [test1 removeObjectAtIndex:2];

////        替换

//        [test1 replaceObjectAtIndex:1 withObject:@"fafafkj"];

//        

//       NSString *str1=[test1 componentsJoinedByString:@"+"];

//        NSLog(@"%@",str1);

//        

////        将字符串拆分成集合

//        NSArray *test3=[str1 componentsSeparatedByString:@"-"];

//        NSLog(@"%@  ",test3);

        NSArray *names=[NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu", nil];

        NSSortDescriptor *arr=[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];

        NSArray *sortarr=[names sortedArrayUsingDescriptors:@[arr]];

        for (NSString *obj in sortarr) {

            NSLog(@"%@",obj);

        }

        

//        选择器

        NSArray *newarr=[names sortedArrayUsingSelector:@selector(compare:)];

        NSLog(@"%@",newarr);

        

//        代码块排序法

        NSArray *ar=[names sortedArrayUsingComparator:^NSComparisonResult

                     (id obj1,id obj2){return [obj1 compare:obj2];}];

        NSLog(@"%@",ar);

////        相交

        NSMutableSet *set2=[NSMutableSet setWithObjects:@"zhan",@"lili",@"das",nil];

        NSMutableSet *set3=[NSMutableSet setWithObjects:@"zhan",@"das",nil];

        [set2 intersectSet:set3];

      

        NSLog(@"%@",set2);

 

//        字典

        NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"lisi",@"name",@"gy",@"addr", nil];

        

        NSLog(@"%@",dic);

//        通过关键字获取value值

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

        

        

//        可变字典

        

        NSMutableDictionary *dic1=[NSMutableDictionary dictionaryWithCapacity:100];

//        添加值

        [dic1 setObject:@"guiyang" forKey:@"addr"];

        [dic1 setObject:@"lii" forKey:@"name"];

        NSLog(@"%@",dic1);

        [dic1 removeObjectForKey:@"addr"];

        NSLog(@"%@",dic1);

        

        NSMutableDictionary *dic2=[NSMutableDictionary dictionaryWithCapacity:100];

        

        [dic1 setObject:@"guiya" forKey:@"addr"];

        [dic1 setObject:@"li" forKey:@"name"];

        NSLog(@"%@",dic2);

        NSArray *arr=@[dic1,dic2];