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
