集合_数组_字典

//    数组 (NSArray)

//    系统提供的数组类 - 类似于C语言中的数组

//    OC中的数组是一个大容器,数组可以存放不同类型的对象且只能保存对象

//    OC数组提供了两类数组NSArray (不可变数组) NSmutableArray (可变数组)

//    可变数组与不可变数组的区别:可变就意味着对原有的对象进行增删改操作,而不可变数组就意味着数组一经创建就不能再修改

    

//    1.创建对象

//    1)初始化方法

    NSArray *array = [[NSArray alloc] initWithObjects:@"dog", @"cat", @"fish", nil];       // 初始化多个元素

    NSLog(@"%@", array);

    NSArray *array1 = [[NSArray alloc] initWithArray:array];

    NSLog(@"%@", array1);

    

//    2)建立便利构造器

    NSArray *array2 = [NSArray arrayWithArray:array1];

    NSLog(@"%@", array2);

   

    NSArray *array4 = [NSArray arrayWithObjects:@"can", @"fis", @"iuo", nil];

    NSLog(@"%@", array4);

    

//    3)字面量

    NSArray *array11 = @[@"laowang", @"zhenshuai", @"cool"];

    NSLog(@"%@", array11);

    

//    2.获取数组元素的个数

    NSLog(@"%ld", array4.count);

    

//    3.获取数组中的元素

//    1)给定位置获取元素

    NSLog(@"%@", [array4 objectAtIndex:1]);

//    2)第一个元素

    NSLog(@"%@", [array4 firstObject]);

//    3)最后一个元素

    NSLog(@"%@", array4.lastObject);

    

//    4.根据元素获取元素在数组中对应的索引(下标)

//    在未找到的情况下返回随机的一个数

    NSLog(@"%ld", [array4 indexOfObject:@"iuo"]);

    

//    5.判断数组中是否包含某一个给定的对象

    if ([array4 containsObject:@"iuo"]) {

        NSLog(@"包含");

    }

    

//    是否相等

    NSArray *array5 = [NSArray arrayWithObjects:@"can", @"fis", @"iuo", nil];


    if ([array5 isEqualToArray:array4]) {

        NSLog(@"");

    }

    

//    6.NSArray NSString 的相互转换方法

    NSString *array6 = [array4 componentsJoinedByString:@"," ];

    NSLog(@"%@", array6);

    

//    NSString NSArray的相互转换方法

    NSString *array7 = @"jids,djf,ko";

    NSArray *array8 = [array7 componentsSeparatedByString:@","];

    NSLog(@"%@", array8);

    NSArray *arr = [NSArray arrayWithObjects:@"你好", @"我不好", @"我好嗯好", nil];

    NSLog(@"%@", [arr componentsJoinedByString:@"嘿嘿嘿"]);

    NSString *str = [NSString stringWithFormat:@"今天哈哈哈"];

    NSLog(@"%@", [str componentsSeparatedByString:@"篮球"]);

    

//    可变数组(nsmutableArray

//    1.初始化方法

    NSMutableArray *array20 = [[NSMutableArray alloc] init];

    NSLog(@"%@", array20);

    NSMutableArray *array21 = [[ NSMutableArray alloc] initWithObjects:@"qwe", @"yui", @"you", nil];

    NSLog(@"%@", array21);

    

//    2.便利构造器

    NSMutableArray *array22 = [NSMutableArray arrayWithObjects:@"cool", @"handsome", @"shuai", nil];

    NSLog(@"%@", array22);

//    3.字面量

//    与父类初始化方法相同

//    NSMutableArray *array23 = @[@"pig", @"peak", @"cake"];

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

//    4.添加元素

//    直接在后面添加元素

    [array22 addObject:@"3"];

    NSLog(@"%@", array22);

//    通过数组添加

    [array22 addObjectsFromArray:array21];

    NSLog(@"%@", array22);

//    5。删除元素

//    1)删除单个元素

    

    [array22 removeObject:@"handsome"];

    NSLog(@"%@", array22);

//    2)删除所有元素

    

//    [array22 removeAllObjects];

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

//    6.插入元素

    [array21 insertObject:@"qqq" atIndex:2];

    NSLog(@"%@", array21);

//    array21 insertObjects:<#(nonnull NSArray *)#> atIndexes:<#(nonnull NSIndexSet *)#>

//    7.交换指定位置的两个元素

    [array22 exchangeObjectAtIndex:0 withObjectAtIndex:2];

    NSLog(@"%@", array22);

    

//    8.替换元素

    [array22 replaceObjectAtIndex:0 withObject:@"789"];

    NSLog(@"%@", array22);

    

//    给定范围

//    array22 replaceObjectsInRange:<#(NSRange)#> withObjectsFromArray:<#(nonnull NSArray *)#>


//    用来存储具有一一对应关系的数据,本质上也是一个大容器

//    1.创建对象

//    1)初始化方法

//    初始化的时候赋值必须成对出现

//    Value Key

    NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"1", @"2", @"3", @"4", nil];

    NSLog(@"%@", dic);

    

    NSArray *array1 = [NSArray arrayWithObjects:@"qq", @"ww", @"ee", nil];

    NSArray *key1 = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];

    NSDictionary *di1 = [[NSDictionary alloc] initWithObjects:array1 forKeys:key1];

    NSLog(@"%@", di1);

    

//    2)便利构造器

    NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"dog", @"d", @"cat", @"c", nil];

    NSLog(@"%@", dic1);

//   通过数组创建

    NSArray *array = [NSArray arrayWithObjects:@"qq", @"ww", @"ee", nil];

    NSArray *key = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];

    NSDictionary *di = [NSDictionary dictionaryWithObjects:array forKeys:key];

    NSLog(@"%@", di);

//    3)字面量

    NSDictionary *dic2 = @{@"key1": @"value1", @"key2": @"value2"};

    NSLog(@"%@", dic2);


//    2.求所有元素的个数

    NSLog(@"%lu", dic1.count);

//    3.根据Key取出对应的Value

   

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

  

//    4。获取所有的Key,所有的Value

    NSLog(@"%@", [dic1 allKeys]);

    NSLog(@"%@", [dic1 allValues]);

    

//    4.可变字典(NSMutableDictionary

//    1.创建对象

    NSMutableDictionary *dic3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"tea", @"t", @"pool", @"p", @"take", @"t", nil];

    NSLog(@"%@", dic3);

    

//    2.向字典内添加对象

//    字典内的数据是无序的

    [dic3 setObject:@"heel" forKey:@"h"];

    NSLog(@"%@", dic3);

    

//    替换

    [dic3 setDictionary:dic1];

    NSLog(@"%@", dic3);

//    3.修改Key对应的Value

//    setObject forKey    先查找对应的Key,如果有的haunted,修改Value,如果没有的          话则把Key - Value作为元素添加到字典中

    [dic3 setObject:@"fg" forKey:@"g"];

    NSLog(@"%@", dic3);


//    [dic3 setObject:@"maomao" forKeyedSubscript:@"t"];

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

    

//    4。移除元素

//    1)移除某一个元素  --根据Key去移除

    [dic3 removeObjectForKey:@"p"];

    NSLog(@"%@", dic3);

    

    [dic3 setValue:nil forKey:@"c"];

    NSLog(@"%@", dic3);

    

//    2)移除所有元素

//    [dic3 removeAllObjects];

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


//    男神小贴士:在字典中一个Key只能对应一个Value,而一个Value可以对应多个Key

//    锁(Value 钥匙(Key 的关系


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值