随意细解:OC -- 字典、数组、集合

本文深入探讨了Objective-C与Swift两种编程语言在iOS开发领域的应用,包括它们各自的优势、特点以及如何在实际项目中选择合适的语言进行开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int main(int argc,constchar * argv[]) {

    

    // 字典是一个容器跟数组一样可以保存数据

    // 保存的形式是以键值对的形式保存

    // 一个key对应一个value

    // keyValue必须是对象

    // key作为钥匙要具有唯一性在开发中一般使用字符串作为key

    // value 可以是一个很复杂的结构例如字典里嵌套字典等

    // 字典里保存的键值对是无序的

    

    // 不可变字典切记不能对不可变字典进行增删

    // 用两个数组类初始化一个不可变字典

    // key的数组

    NSArray *keys =@[@"name",@"sex",@"age"];

    // value的数组

    NSArray *values=@[@"wl",@"",@"18"];

    // 初始化字典

    NSDictionary *dic = [NSDictionarydictionaryWithObjects:valuesforKeys:keys];

    NSLog(@"%@", dic);

    

    // 自定义初始化方法

    NSDictionary *dic2 = [[NSDictionaryalloc]initWithObjects:valuesforKeys:keys];

     NSLog(@"%@", dic2);

    

    // 使用该方法初始化切记 value : key顺序

    NSDictionary *dic1 = [NSDictionarydictionaryWithObjectsAndKeys:

                          @"wangl",@"name",

                          @"nan",@"sex",

                          @"18",@"age",

                          nil];

     NSLog(@"%@", dic1);

    // 把所有key取出来

    NSArray *key = [dic1allKeys];

    NSLog(@"%@", key);

    

    NSDictionary *dic3 = [[NSDictionaryalloc]initWithObjectsAndKeys:@"wangl",@"name",@"nan",@"sex",@"18",@"age",nil];

    

    NSArray *allkey = [dic3allKeys];

    NSLog(@"%@", allkey);

    

    // 取出所有value

    NSArray *value = [dic3allValues];

    NSLog(@"%@", value);

    

    // 语法糖

    // 初始化顺序 key : value

    NSDictionary *dic4 =@{@"name":@"wl",@"sex":@"nan",@"age":@"18"};

    NSLog(@"%@", dic4);

    

    // 根据key取出字典中对应的 value

    // 要知道你取出的是什么类型就用什么类型去接收TA

    NSString *v = [dic4objectForKey:@"name"];

    NSLog(@"%@", v);

    

    NSString *age = dic4[@"age"];

    NSLog(@"%@", age);

    

    // 获取字典的元素个数

    NSLog(@"%lu", [dic4count]);

    

    

    // 可变字典

    // 初始化一个空字典切记必须进行初始化才能使用字典

    NSMutableDictionary *mutDic = [NSMutableDictionarydictionary];

    // 初始化的时候给一个建议的容量

   // NSMutableDictionary *mutDic1 = [[NSMutableDictionary alloc]initWithCapacity:10];

  //  NSMutableDictionary *mutDic2 = [[NSMutableDictionary alloc]init];

    

    // 添加键值对

     [mutDic setObject:@"wl"forKey:@"name"];

     [mutDic setObject:@"nan"forKey:@"sex"];

     [mutDic setObject:@"18"forKey:@"age"];

    

    NSLog(@"%@", mutDic);

    // 根据key删除键值对

    [mutDic removeObjectForKey:@"sex"];

    NSLog(@"%@", mutDic);

    // 删除所有键值对

    [mutDic removeAllObjects];

    NSLog(@"%@", mutDic);

    

    

    // 创建字典管理前三排学生每排为一组并输出

    NSArray *stuValue1 =@[@"xuyang",@"zhaojie",@"zhangwen",@"zhuangzhuang"];

    NSArray *stuValue2 =@[@"dajun",@"tingting",@"zhiyan",@"bingqi"];

    NSArray *stuValue3 =@[@"zangjie",@"zhangpeng",@"qiaodi",@"taotao"];

    NSMutableDictionary *stuDic = [NSMutableDictionarydictionary];

    [stuDic setObject:stuValue1forKey:@"NO.1"];

    [stuDic setObject:stuValue2forKey:@"NO.2"];

    [stuDic setObject:stuValue3forKey:@"NO.3"];

    NSLog(@"%@",stuDic);

    

    // 创建一个字典姓名:dj性别:女年龄:22

    

    NSDictionary *mydic =@{@"name":@"dj",@"sex":@"",@"age":@"22"};

    // 遍历字典

   // 获取所有key

    NSArray *k = [mydicallKeys];

    for (int i =0; i < [kcount]; i++) {

        // 取出每一个key

        NSString *key = k[i];

        // 利用key取出对应的value

        NSString *value = [mydicobjectForKey:key];

        // 或者 NSString *value = mydic[@"k[i]"];

        NSLog(@"value = %@  key = %@", value, key);

    }

    

    

    // 快速遍历

//    for (容器中存的对象的类型str in要遍历的容器(数组或字典)) {

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

//    }

    for (NSString *objin stuValue1) {

        NSLog(@"%@", obj);

    }


    // 使用快速遍历forin

    // 遍历字典是遍历字典中的所有key

    // 遍历数组是遍历数组中的每一个元素

    for (NSString *objin mydic) {

        // 用所有key取出value

        NSString *str = [mydicobjectForKey:obj];

        NSLog(@"%@ = %@", obj, str);

    }

    

    

  // 集合:无序不重复

    // 不可变集合

    NSSet *set = [[NSSetalloc]initWithObjects:@"2",@"4",@"3",@"4",nil];

    NSLog(@"%@",set);

    NSLog(@"%ld",[setcount]);

    // 获取集合中的一个元素

    // anyObject返回一个计算机认为最合理的一个元素

    NSString *setStr = [setanyObject];

    NSLog(@"%@", setStr);

    

    // 可变集合

    // 初始化空的集合

    NSMutableSet *mutSet = [NSMutableSetset];

    // 添加元素

    [mutSet addObject:@"2"];

    [mutSet addObject:@"1"];

    [mutSet addObject:@"3"];

    [mutSet addObject:@"2"];

    NSLog(@"%@", mutSet);

    // 删除 2元素

    [mutSet removeObject:@"2"];

    NSLog(@"%@", mutSet);

    // 删除所有元素

    [mutSet removeAllObjects];

    NSLog(@"%@", mutSet);

    

    // 计算重复元素个数的集合

    NSArray *arr =@[@"1",@"2", @"3",@"3",@"3",@"3",@"3",@"3"];

    NSCountedSet *countset = [NSCountedSetsetWithArray:arr];

    NSInteger count = [countsetcountForObject:@"3"];

    NSLog(@"%ld", count);

    

    

    

    // 数组排序

    // 不可变数组排序

    NSArray *array =@[@"12",@"3", @"26",@"4",@"5"];

    NSArray *arrNew = [arraysortedArrayUsingSelector:@selector(compare:)];

    NSLog(@"%@",arrNew);

    

    // 可变数组排序

    // 可变数组排序是不需要返回值的因为操作的是原数组

    NSMutableArray *array1 = [NSMutableArrayarrayWithObjects:@"13",@"11",@"7",@"5",nil];

    [array1 sortUsingSelector:@selector(compare:)];

    NSLog(@"%@",array1);

    

    

    

    return0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值