数组的使用

1. 数组

  func demo(){
        /**
         数组同样适用 []
         数字不需要包装成 NSNumber
         结构体也不需要包装成 NSValue
         */
        // [String] - 数组,是存放字符串的数组
        // let array = ["张三","lisi"]
        // as [Any] : 设置数组存放任意对象
        // 数组中存放相同类型的情况多,原因:数组是通过下标来遍历的
        // 数组的准确类型,可以用 option + click 判断
        let array2 = ["zhangsan","lisi",12,CGPoint(x: 10, y: 10),NSValue(cgPoint: CGPoint(x: 20, y: 20))] as [Any]
        print(array2)
        
    }

2. 数组定义可变 var 不可变 let

    // OC数组中的可变NSMutableArray 和 不可变 NSArray
    // 可变 var 不可变 let
    func demo1(){
        //定义数组的时候,自动推导的类型是 [String], 决定数组中只能存放 String 类型
        // Swift Any: 表示任意对象
        // OC 中所有的对象都继承 NSObject
        // Swift 中的对象,可以没有任何父类
        var array: [Any] = ["zhangsan","lisi"]
        
        //追加对象
        array.append("wangwu")
        //不能直接追加数字,如果定义数组的时候,指定类型是[Any],就可以存放数字
        array.append(4)
        
        print(array)
    }

3. 数组的基本操作 - 增删改

    //数组的基本操作
    func demo3(){
        var array = ["zhangsan","lisi"]
        
        //增加
        array.append("wanger")
        print(array)
        
        //修改 - 通过下标获取元素,然后进行修改
        array[0] = "zhangsansan"
        print(array)
        
        //删除 删除第一个
        array.removeFirst();
        print(array);
        //删除最后一个
        array.removeLast()
        print(array);
        
        //删除所有元素,并且保留容量
        array.removeAll(keepingCapacity: true)
       // array.remove(at: 0);
        print(array);
        print("数组容量 \(array.capacity)")
        
        for s in array{
            print(s)
        }
    }

4. 测试数组容量

    //测试数组容量
    func demo5(){
        //定义一个存放字符串的数组,并没有分配空间
        var array:[String]
        
        //分配空间
        array = [String]()
       
        for i in 0..<16 {
            array .append("zhangsan \(i)")
            //当插入元素时,如果容量不够,会在当前容量基础上 * 2 方便后续元素的增加
            print(array[i] + " - 容量 \(array.capacity)")
        }
        
        print(array)
    }

5. 实例化数组

//定义并且实例化一个空的存放字符串的数组
 func demo6(){
        var array = [String]()
        array.append("zhangsan")
        print(array)
    }

6. 数组的合并

   //数组的合并
   func demo10(){
        var array:[Any] = ["zhangsan","lisi"]
        let array2:[Any] = ["xiaoxiao","binbin"]
        let array3 = ["dada",12] as [Any]
        //将目标 arry2 合并到 array 中
        array += array2;
        //注意:在合并数组的时候,数组的类型必须保持一致
        array += array3
        print(array)
    } 

7. OC中a1数组和a2数组的区别

-(void)demo{
    //使用可变数组的时候,如果知道数组的容量,应该使用 Capacity 实例化数组,一次性分配
    //应用场景: 从网络获取 json 字典数组,字典转模型,变成模型数组(容量可以根据字典的数组容量获得)
    NSMutableArray *a1 = [NSMutableArray array];
    NSMutableArray *a2 = [NSMutableArray arrayWithCapacity:2];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanyang Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值