OC-集合类(数组)

   //oc 中的数组是一个大容器,数组可以存放不同类型的对象,且只能保存对象;
   //oc数组提供了两类数组 NSArray(不可变数组)   NSMtableArray(可变数组)

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

1.数组
(一)初始化数组(不可变数组)
 NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc",  nil];//正常初始化一个数组


NSArray *array1 = [[NSArray alloc] initWithArray:array];//根据一个数组初始化一个数组

NSArray *array4 = [NSArray arrayWithObject:@"p"];//初始化一个元素

NSArray *array5 = @[@"1", @"2", @"3"];//字面量创建数组(常用)

一些常用属性

  1 获取数组的元素个数
    NSLog(@"%lu", array5.count);
  2.获取数组中的元素 
//    1)给定位置获取元素
    NSLog(@"%@", [array5 objectAtIndex:1]);
//    2)第一个元素
    NSLog(@"%@", [array5 firstObject]);

//    3)最后一个元素
    NSLog(@"%@", [array5 lastObject]);

//    4 根据元素获取元素在数组中对应的索引(下标)
//    在未找到的情况下返回随机的一个数
    NSLog(@"%ld", [array5 indexOfObject:@"1"]);

//    5 判断数组中是否包含某一个给定的对象
    if ([array5 containsObject:@"1"]) {
        NSLog(@"存在");
    } else {
        NSLog(@"不存在");
    }

//两个转换(重点)
 //    数组转字符串
    NSArray *arr = @[@"1111", @"2222", @"3333"];
  NSString *str = [arr componentsJoinedByString:@","];//分隔号

 //   字符串转数组
 NSLog(@"%@", [str componentsSeparatedByString:@","]);//分隔号

(二) 可变数组(继承与不可变数组, 初始化方法相同)
  1.初始化一个可变数组
     1. 初始化方法
    NSMutableArray *MutableArr  = [[NSMutableArray alloc] initWithObjects:@"aa", @"ss", @"cc", nil];
     2.添加元素
//    直接向后面追加对象
    [MutableArr addObject:@"2"];

    //    通过数组添加
    [MutableArr addObjectsFromArray:array5];


    3.删除元素

//    1)删除单个元素
    [MutableArr removeObject:@"2"];
    NSLog(@"%@", MutableArr);//只要有匹配对象就删除掉

//    2)删除所有元素
//    [MutableArr removeAllObjects];

//    6.插入元素
    [MutableArr insertObject:@"qqq" atIndex:2];

//    ar insertObjects:<#(nonnull NSArray *)#> atIndexes:<#(nonnull NSIndexSet *)#>批量插入?

//    7. 交换指定位置的两个元素
[MutableArr exchangeObjectAtIndex:0 withObjectAtIndex:2];

//    8. 替换元素
[MutableArr replaceObjectAtIndex:0 withObject:@"www"];




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值