Swift學(xué)習(xí)_基礎(chǔ)語(yǔ)法之?dāng)?shù)組&字典&集合

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ù)組&字典&集合所有答案輸出

小結(jié)

代碼已上傳至git:
--> 傳送門:Swift_基本語(yǔ)法

附錄

查看完整專欄《Swift學(xué)習(xí)》

有問(wèn)題歡迎指正以及相互探討 —— CoderSun

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棘幸,更是在濱河造成了極大的恐慌,老刑警劉巖古涧,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馍乙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡炎辨,警方通過(guò)查閱死者的電腦和手機(jī)捕透,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人乙嘀,你說(shuō)我怎么就攤上這事末购。” “怎么了虎谢?”我有些...
    開(kāi)封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵盟榴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我嘉冒,道長(zhǎng)曹货,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任讳推,我火速辦了婚禮顶籽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘银觅。我一直安慰自己礼饱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布究驴。 她就那樣靜靜地躺著镊绪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洒忧。 梳的紋絲不亂的頭發(fā)上蝴韭,一...
    開(kāi)封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音熙侍,去河邊找鬼榄鉴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛉抓,可吹牛的內(nèi)容都是我干的庆尘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼巷送,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驶忌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起笑跛,我...
    開(kāi)封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤付魔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后堡牡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抒抬,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年晤柄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妖胀。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芥颈,死狀恐怖惠勒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爬坑,我是刑警寧澤纠屋,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站盾计,受9級(jí)特大地震影響售担,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜署辉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一族铆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哭尝,春花似錦哥攘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至桶唐,卻和暖如春栅葡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尤泽。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工欣簇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人安吁。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓醉蚁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鬼店。 傳聞我的和親對(duì)象是個(gè)殘疾皇子网棍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容