Swift
swift提供了數(shù)組喧锦、字典、Set三種集合類型
1.數(shù)組
1.定義數(shù)組的2種方法
var array1:Array<String> //定義一個(gè)String類型的
var array2:[String] //定義一個(gè)String類型的
2.創(chuàng)建一個(gè)空數(shù)組
var someInts = [Int]()
3.使用字面量構(gòu)造數(shù)組
let names:[String] = ["HarrySun","CoderSun","haozi"]
let array3 = ["浩子",18] as [Any]
print(array3) // 打印 ["浩子", 18]
4.兩個(gè)數(shù)組相加
array1 = ["張三","李四"]
array2 = ["mik","wade"]
var array4 = array1 + array2
print(array4) // 打印 ["張三", "李四", "mik", "wade"]
5.獲取數(shù)組的長(zhǎng)度和遍歷數(shù)組
print(array4.count)
for name in array4 {
print(name) // 打印 張三 李四 mik wade
}
6.數(shù)組的增加、刪除
// 6.1 元素增加
array4.append("長(zhǎng)安")
print(array4) // 打印 ["張三", "李四", "mik", "wade", "長(zhǎng)安"]
// 6.2 插入到指定位置
array4.insert("haozi", at: 0)
print(array4) // 打印 ["haozi", "張三", "李四", "mik", "wade", "長(zhǎng)安"]
// 6.3 刪除指定位置的元素
array4.remove(at: 0)
print(array4) // 打印 ["張三", "李四", "mik", "wade", "長(zhǎng)安"]
// 6.4 刪除最后一個(gè)元素
array4.removeLast()
print(array4) // 打印 ["張三", "李四", "mik", "wade"]
// 6.5 刪除第一個(gè)元素
array4.removeFirst()
print(array4) // 打印 ["李四", "mik", "wade"]
// 6.6 刪除所有元素
array4.removeAll()
print(array4) // 打印 []
7.使用下標(biāo)法修改數(shù)組元素
var array5 = ["北京","上海","天津","深圳"]
print("修改元素之前的array5:\(array5)") // 結(jié)果 ["北京", "上海", "天津", "深圳"]
array5[0] = "廣東"
print("修改元素之后的array5:\(array5)") // 結(jié)果 ["廣東", "上海", "天津", "深圳"]
2.字典與集合
1.字典的定義和創(chuàng)建
var airPorts:Dictionary<String,String> = ["TYO":"Tokyo","DUB":"Dublin"]
2.字典的增加與替換
var dict = ["name":"劉德華","age":18,"height":180] as [String : Any]
print("dict:\(dict)") // 結(jié)果 ["name": "劉德華", "age": 18, "height": 180]
// 2.1 針對(duì)name的鍵修改
dict["name"] = "CoderSun"
print("修改name之后的dict:\(dict)") // 結(jié)果 ["name": "CoderSun", "age": 18, "height": 180]
// 2.2 dict沒(méi)有屬性的直接加入
dict["gender"] = "男"
print("加入gender之后的dict:\(dict)") // 結(jié)果 ["name": "CoderSun", "age": 18, "height": 180, "gender": "男"]
3.字典的合并
var dict2 = ["title":"老大"];
for (k,v) in dict2 {
dict[k] = v;
}
print(dict) // 打印 ["name": "CoderSun", "age": 18, "height": 180, "gender": "男", "title": "老大"]
// 3.1 獲取key對(duì)應(yīng)的值
print("獲取key對(duì)應(yīng)的值:\(dict["gender"] ?? "nan")") // 結(jié)果 男
// 3.2 移除一個(gè)key和其對(duì)應(yīng)的值
dict.removeValue(forKey:"title")
print("移除一個(gè)元素之后的dict:\(dict)") // 結(jié)果 ["name": "CoderSun", "age": 18, "height": 180, "gender": "男"]
// 3.3 獲取所有key和獲取所有value
print("未強(qiáng)轉(zhuǎn)之前的所有key:\(dict.keys)") // 打印出來(lái)還是字典通贞,所以這里需要強(qiáng)制轉(zhuǎn)換下
print("強(qiáng)轉(zhuǎn)之后的所有key:\(Array(dict.keys))")
print(Array(dict.values))
// 上方三個(gè)分別打痈慵唷:
// 未強(qiáng)轉(zhuǎn)之前的所有key:LazyMapCollection<Dictionary<String, Any>, String>(_base: ["name": "CoderSun", "age": 18, "height": 180, "gender": "男"], _transform: (Function))
// 強(qiáng)轉(zhuǎn)之后的所有key:["name", "age", "height", "gender"]
// ["CoderSun", 18, 180, "男"]
這里獲取字典的所有key打印出來(lái)的還是字典,強(qiáng)轉(zhuǎn)下才會(huì)得到所有key的數(shù)組
轉(zhuǎn)換前以及轉(zhuǎn)換后的字典所有key數(shù)組
4.編程題
-
4.1 創(chuàng)建一個(gè)數(shù)組满葛,增加10個(gè)元素径簿,然后遍歷將每個(gè)元素輸出
var array6 = [String]() array6.append("1") array6.append("2") array6.append("3") array6.append("4") array6.append("5") array6.append("6") array6.append("7") array6.append("8") array6.append("9") array6.append("10") print("array6:\(array6)") // 打印 array6:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] for i in array6 { print(i) }
-
4.2 創(chuàng)建一個(gè)整型的Set,并隨機(jī)添加10個(gè)數(shù)字嘀韧,然后將Set中的元素按順序打印出來(lái)
var set1 = Set<String>() set1.insert("1") set1.insert("2") set1.insert("3") set1.insert("4") set1.insert("5") set1.insert("6") set1.insert("7") set1.insert("8") set1.insert("9") set1.insert("10") for i in set1.sorted() { print(i) }
4.3 創(chuàng)建一個(gè)字典竭讳,往里面添加5個(gè)學(xué)員的學(xué)好和姓名儡炼,然后按鍵值打印出來(lái)
var studentDic = Dictionary <String,String>()
studentDic["1"] = "Lucy"
studentDic["2"] = "John"
studentDic["3"] = "Smith"
studentDic["4"] = "Aimee"
studentDic["5"] = "Amanda"
for (id,name) in studentDic {
print(id,name)
}
數(shù)組&字典&集合所有答案輸出