美文网首页iOS Developer
OC中数组、字典和集合解析(二)

OC中数组、字典和集合解析(二)

作者: WilliamChou_ | 来源:发表于2016-03-25 20:42 被阅读65次

    可变字典

    //创建一个空的可变字典,预留两个条目的空间

    NSMutableDictionary *mInitDict = [[NSMutableDictionary alloc]initWithCapacity:2];

    //创建一个空的可变字典

    NSMutableDictionary *mInitDict1 =[[NSMutableDictionary alloc]init];

    //字面量

    NSMutableDictionary*mInitDict2=[@{@"name":@"sunwukong",@"age":@18,@"sex":@"F"}mutableCopy];

    NSLog(@"mInitDict2 = %@",mInitDict2);

    //功能方法

    //添加条目

    //前面是值(value),后面是键(key)

    //注意:值和键不能为nil

    [mInitDict2 setObject:@0.01 forKey:@"salary"];

    NSLog(@"添加后: = %@",mInitDict2);

    //修改方法

    [mInitDict2 setObject:@0.1 forKey:@"salary"];

    NSLog(@"修改后: =%@",mInitDict2);

    //当字典中。没有对应的key值时,将会添加相应的键值对

    //如果有对应的key值,则对key对应的value进行修改

    //字典中无法修改key值

    //字面量的添加和修改

    //当key值存在,则修改

    //当key不存在,则添加

    mInitDict2[@"height"] = @167;

    NSLog(@"字面量添加后:%@",mInitDict2);

    mInitDict2[@"height"]=@666;

    NSLog(@"字面量修改后:%@",mInitDict2);

    //不是字典类的方法,但是可以对字典操作

    //和setObject:forKey的功能相似

    //值可以为nil,删除key值对应的条目

    [mInitDict2 setValue:@64 forKey:@"weight"];

    NSLog(@"添加后:%@",mInitDict2);

    [mInitDict2 setValue:nil forKey:@"weight"];

    NSLog(@"设置nil:%@",mInitDict2);

    //删除

    //删除key值对应的条目

    [mInitDict2 removeObjectForKey:@"height"];

    NSLog(@"删除后 = %@",mInitDict2);

    //删除所有条目

    [mInitDict2 removeAllObjects];

    NSLog(@"删除所有后:%@",mInitDict2);

    #集合(集合也分为可变集合和不可变集合)

    集合具有互斥性、无序性,集合中不可有相同的对象,对象之间没有顺序,可变集合和不可变集合里面是元素的可变与不可变

    不可变集合

    //创建对象//用多个对象来创建集合//注意:当有多个相同对象时,只添加一个

    NSSet *initSet =[[NSSet alloc]initWithObjects:@"teacher",@"student",@"worker", nil];

    NSLog(@"initStr = %@",initSet);

    NSSet *initStr1 = [NSSet setWithObjects:@"Teacher",@"Student",nil];

    NSLog(@"initSet1 = %@",initStr1);

    //获取元素个数功能方法

    NSInteger count = [initStr1 count];

    NSLog(@"count = %ld",count);

    //获取任意元素

    //没有任何规律,不是随机

    NSString *str =[initStr1 anyObject];

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

    //是否包含

    BOOL flag = [initStr1 containsObject:@"Person"];

    NSLog(@"flag =%d",flag);

    //获取所有元素

    NSArray *array = [initStr1 allObjects];

    NSLog(@"array = %@",array);

    可变集合

    NSMutableSet *mInitSet = [[NSMutableSet alloc]initWithCapacity:2];

    //添加 (再次添加后输出时还是只有一个,但是不会报错)

    [mInitSet addObject:@"xiaohong"];

    NSLog(@"mInitSet = %@",mInitSet);

    //重复添加是无效的,但是不会报错

    [mInitSet addObject:@"xiaohuang"];

    NSLog(@"mInitSet = %@",mInitSet);

    //删除

    [mInitSet removeObject:@"xiaohong"];

    NSLog(@"mInitSet = %@",mInitSet);

    //删除所有

    [mInitSet removeAllObjects];

    NSLog(@"mInitSet = %@",mInitSet);

    相关文章

      网友评论

        本文标题:OC中数组、字典和集合解析(二)

        本文链接:https://www.haomeiwen.com/subject/mkldlttx.html