Swift-数组

1、数组的定义

    //OC 使用[]定义数组,Swift一样,但是没有@

        //自动推导的结果[String]->表示数组中存的都是String

        //跟OC中的数组指定泛型类型

    //Swift 中基本数据类型不需要包装

        let array = ["张三","里斯"]

   //CG结构体

        let p = CGPoint(x: 10, y: 300)

        let array3 = [p]

//混合数组:开发中几乎不用,因为数组是靠下标索引

        //如果数组中的类型不一致,自动推导的结果[NSObject]

        //在Swift 中还有一种类型[AnyObject]->任意类型

        //在Swift 中一个类可以没有任何‘父类’

        //在混合的数组中,CG结构体需要包装

        let array4 = ["账单",1,2,NSValue(CGPoint:p)]

2、数组的遍历

     let array = ["张三","里斯","xiaoming"]

方法一:按照下标遍历

for i in 0..<array.count {

             print(i)

        }

方法二:for in 遍历元素

for s in array{

            print(s)

        }

方法三:enum block 遍历,同时遍历下标和内容

for e in array.enumerate(){

            print(e)

            /*

            元组

            (0, "张三")

            (1, "里斯")

            (2, "xiaoming")

            */

        }

方法四:遍历下标和内容

        //n 索引下标

        //s 就是[String]数组n对应的String元素

        //n/s随便写

        for (n, s) in array.enumerate(){

            print("(n)(s)")

        }

方法五:反序遍历

for s in array.reverse(){

            print(s)

        }

方法六:反序遍历下标和内容

//先枚举再反序

        for (n,s) in array.enumerate().reverse(){

            print("(n)(s)")

        }

3、数组的增删改

  OC数组分为可变和不可变数组,在Swift中改变var就行

 追加元素

  array.append("老王")

//修改,通过下标定位

        array[0] = "@"

//删除

        array.removeAtIndex(2)      

//删除全部,并且保留空间

        array.removeAll(keepCapacity: true)

        print("(array)(array.capacity)")

4、数组的容量

//定义个数组,指定类型, 但是没有初始化

        //var array: [Int]

        //初始化

       // array = [Int]()

        //以上可以合并成一句

        var array = [Int]()

    array.capacity的容量初始化为0,以2,4,8,16……递增

  

  //如果初始化指定容量,可以避免插入数据时,重复分配空间,效率会高点

        //[NSMutableArray arrayWithcapacity:10]

5、数组的合并

   var array:[NSObject] = ["张三","里斯","xiaoming"]

        let array2 = ["老公","1","2",100]

        //将array2合并到array中

        //注:要合并的数组类型必须一致,才可以直接+

        array += array2

原文地址:https://www.cnblogs.com/jiang-xiao-yan/p/6382660.html