Objective-C之集合

 

//数组存放的内容必须是NSOject对象
        //数组存放的内容是有序的
        /**
         *  NSArray  不可变数组 */
        
        /**
         *  1.创建对象
         */
        
        //使用初始化方法
        NSArray *array1 = [[NSArray alloc]initWithObjects:@10, @"娜娜", @"怀玉", @"满明强", @"金明", @"阿福", nil];
        NSArray *array2 = [[NSArray alloc]initWithArray:array1];
        
        //类方法
        NSArray *array3 = [NSArray arrayWithObjects:@"曲国伟", @"小南", @"周雨琪", @"bobo", @"xiaozun", nil];
        //字面量方法
        NSArray *array4 = @[@"yangyunda", @"yangshukai", @"yida", @"wumingwei"];
        NSLog(@"array4 = %@", array4);
        
        /**
         *  2.数组查找
         */
        //通过下标访问对象
        NSLog(@"%@", array1[1]);
        
        NSString *str1 = [array1 objectAtIndex:2];
        NSLog(@"%@", str1);
        
        //通过对象访问下标
        NSString *str2 = @"阿福";
        NSInteger index = [array1 indexOfObject:str2];
        NSLog(@"%lu", index);
        
        /**
         *  3.判断数组中是否包含某个指定的对象
         */
        BOOL isHave = [array3 containsObject:@"小南"];
        NSLog(@"%d", isHave);
        
        /**
         *  4.NSString和NSArray之间的转换
         */
        NSString *string1 = @"孙超&程晗&孟玲旭";
        //将一个字符串按照指定字符截取, 每段内容存放在数组中
        NSArray *strArray = [string1 componentsSeparatedByString:@"&"];
        NSLog(@"%@ %@ %@", strArray[0], strArray[1], strArray[2]);
        
        //将数组中的元素按照指定的字符串拼接成新的字符串对象
        NSArray *array5 = @[@"雷坤", @"于艳萍", @"尹浩"];
        NSString *string2 = [array5 componentsJoinedByString:@"&"];
        NSLog(@"%@", string2);
        
        
        //练习: 将字符串转为数组
        NSString *strTemp = @"http://www.imanhua.com/Cover/2011-10/hyrz.jpg&http://www.imanhua.com/Cover/2011-09/op.jpg&http://www.imanhua.com/Cover/2012-04/yjdwb.jpg";
        NSArray *tempArray = [strTemp componentsSeparatedByString:@"&"];
        NSLog(@"%@", tempArray);
        
        
        
        /**
         *  NSMutableArray 可变的数组 */
        
        //1.创建对象
        
        //初始化方法
        NSMutableArray *mArray = [[NSMutableArray alloc]initWithObjects:@10, @4.3, @"dfa", @"qewfk", nil];
        //类方法
        NSMutableArray *mArray1 = [NSMutableArray arrayWithObjects:@"阿斯蒂芬", @43, @54.43, @"大师傅", nil];
        //2.添加元素 插入元素
        [mArray addObject:@""];
        NSLog(@"%@", mArray);
        [mArray insertObject:@10 atIndex:1];
        NSLog(@"%@", mArray);
        //3.删除元素
        [mArray1 removeObject:@"阿斯蒂芬"];
        NSLog(@"%@", mArray1);
        //4.替换指定位置的对象
        [mArray1 replaceObjectAtIndex:1 withObject:@"wuse"];
        NSLog(@"%@", mArray1);
        //5.交换两个指定位置的对象
        [mArray1 exchangeObjectAtIndex:1 withObjectAtIndex:2];
        NSLog(@"%@", mArray1);
        
        /**
         *  字典 存放键值对类型的数据
         */
        
        /*
         name : zhangsan
         sex : boy
         age : 13
         
         */ NSDictionary 不可变的字典
           字典中存放的数据是无序的 字典中key值是唯一的 /**
         *  1.创建对象
         */
        初始化方法
        NSDictionary *dict1 = [[NSDictionary alloc]initWithObjectsAndKeys:@"zhangsan", @"name", @"boy", @"sex", @18, @"age", nil];
        NSLog(@"%@", dict1);
        
        NSDictionary *dict2 = [[NSDictionary alloc]initWithObjects:@[@"zhangsan", @"boy", @18] forKeys:@[@"name", @"sex", @"age"]];
        NSLog(@"%@", dict2);
        //类方法
        NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"liuaoran", @"name", @"nan", @"sex", @18, @"age", nil];
        NSLog(@"%@", dict3);
        //字面量方法
        NSDictionary *dict4 = @{
                                @"name" : @"gaojie",
                                @"sex"  : @"boy",
                                @"age"  : @28,
                                @"hobby": @"nana"
                               };
        NSLog(@"%@", dict4);
        
        
        /**
         *  2.查找
         */
        //根据key查找object
        NSString *string1 = [dict4 objectForKey:@"name"];
        NSLog(@"%@", string1);
        
        //下标法, key值作为下标
        NSLog(@"%@", dict4[@"name"]);
        
        /**
         *  3.获取字典长度
         */
        NSLog(@"%lu", [dict4 count]);
        
        //NSMutableDictionary 可变的字典 //1.创建对象
        NSMutableDictionary *mdic = [[NSMutableDictionary alloc]initWithDictionary:@{
                                                                                     @"name" : @"gaojie",
                                                                                     @"sex"  : @"boy",
                                                                                     @"age"  : @28,
                                                                                     @"hobby": @"nana"
                                                                                     }];
        NSLog(@"%@", mdic);
        NSMutableDictionary *mdic1 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"wangqiang", @"name", @"nan", @"gender", @18, @"age", nil];
        NSLog(@"%@", mdic1);
        
        NSMutableDictionary *mdic2 = [[NSMutableDictionary alloc]initWithObjects:@[@"wangqiang", @"nan", @18]forKeys:@[@"name", @"gender", @"age"]];
        NSLog(@"%@", mdic2);
        NSMutableDictionary *mdic3 = [NSMutableDictionary dictionaryWithObject:@[@"zhangsan", @"boy", @18] forKey:@[@"name", @"sex", @"age"]];
        NSLog(@"%@", mdic3);
        //2.添加,修改键值对
        //如果key值存在,修改key对应的object数据
        //如果key值不存在,添加键值对
        [mdic addEntriesFromDictionary:@{@"address" : @"qinghe"}];
        NSLog(@"%@", mdic);
        [mdic1 setObject:@14 forKey:@"class"];
        NSLog(@"%@", mdic1);
        
        [mdic1 setValue:@"清河大厦" forKey:@"address"];
        NSLog(@"%@", mdic1);
        [mdic1 setValue:@"金五星" forKey:@"address"];
        NSLog(@"%@", mdic1);
        
        /*
         setValue: forKey: 的key参数类型必须是NSString *
         setObject: forKey: 的key参数类型可以是任意类型的对象
         
         setValue: forKey: 是NSObject对象的方法, 也就是说所有的OC对象都有这个方法
         setObject: forKey: 是NSMutableDictionary类中特有的方法
         
         */

        //3.删除
        [mdic1 removeObjectForKey:@"address"];
        NSLog(@"%@", mdic1);
        //删除所有内容
        [mdic1 removeAllObjects];
        NSLog(@"%@", mdic1);
        
        
        //NSSet 集合(元素不可以重复,无序存放) //创建一个set对象
        
        NSSet *set = [NSSet setWithObjects:@"liuyang", @"wangzhiting", @"wangqiang", @"yvejianhua", @"liuyang", nil];
        NSLog(@"%@", set);
        
        //任意取出一个元素
        NSString *str = [set anyObject];
        NSLog(@"str = %@", str);
        
        //取出所有的元素
        NSArray *array = [set allObjects];
        NSLog(@"%@", array);
        
        //获取集合中元素的个数
        NSLog(@"%lu", set.count);
        
        //判断对象是否在集合中
        BOOL isHave = [set containsObject:@"liuyang"];
        NSLog(@"%d", isHave);
        
        //NSMutableSet 可变的集合
        //创建对象
        NSMutableSet *mset = [NSMutableSet setWithObjects:@"zhangmingjie", @"wangzhizhun", nil];
        
        //添加对象
        [mset addObject:@"-1"];
        NSLog(@"%@", mset);
        
        //删除对象
        [mset removeObject:@"-1"];
        NSLog(@"%@", mset);

 

 

 

 

你可能感兴趣的:(Objective-C之集合)