Swift 集合類型

集合類型
一組同類型的值得組合,根據(jù)組合的整體特性分為:
有序可重復(fù):數(shù)組(Array)
無序不重復(fù):Set
無序可重復(fù)步势,但每個值有唯一的鍵(key):字典(Dictionary)
批量處理集合中的元素,可以使用for in 循環(huán)

// 數(shù)組
有序可重復(fù),用于存儲同一類型的值
定義:Array<類型> 或者[類型]


// 創(chuàng)建一個有默認(rèn)值的數(shù)組
let array : [Int]
array = [Int](repeatElement(3, count: 10))
// 創(chuàng)建一個有序范圍的Int數(shù)組忿晕,Array(起始值...終止值)
let array2 = Array(1...10)
// 用數(shù)組字面量來創(chuàng)建數(shù)組:[值1,值2银受,值3践盼,...,值N]
var places = ["guangzhou","shanghai","chongqin","hainan"]

// 元素計數(shù):count 空否:isEmpty
places.count
places.isEmpty
// +添加:append 添加一個同類型的數(shù)組 +=
places.append("wuhan")

let haiwaiplace = ["NewYork","London","Sao paolu"]
places += haiwaiplace
// 獲取元素:數(shù)組名[索引]宾巍,索引總是從0開始
places[7]

// 插入:insert
places.insert("Paris", at: 5)

// 移除:remove
places.remove(at: 6)

places

for str in places {
    print(str)
}

集合(Set):值無序不重復(fù)咕幻,適合存儲具有唯一性的數(shù)據(jù),如用戶名/身份證/身份證號碼/護照號等

// 定義:Set<元素類型>,無法使用類型推斷顶霞,但可省略類型
let set : Set<Int> = [1,2,3]
let cardno : Set = [1,2,4,3,1,5]

// 用數(shù)組字面量創(chuàng)建集合
var citys : Set = ["shanghai","shenzhen","guangzhou","beijing"]

// 元素計數(shù):count 空否:isEmpty
citys.count
citys.isEmpty
// 插入:insert
citys.insert("chengdu")
// 移除:remove
citys.remove("shanghai")
// 是否包含某元素:contains
citys.contains("beijing")
// 轉(zhuǎn)換成數(shù)組:sorted
let cityArray = citys.sorted();

// 集合間的運算
var x:Set = [1,2,3,4]
var y:Set = [4,3,5,6]
// 交集:intersection
x.intersection(y)
x
// 差集:subtract 改變x
// x.subtract(y)

// 并集:union 改變x
// x.union(y)

// 補集:symmetricDifference
x.symmetricDifference(y)

// 集合的關(guān)系
// 相等:兩個集合有完全相同的元素
let h : Set = [1,2,3]
let i : Set = [3,1,2]
let j : Set = [2]
h == i

// 子集:isSubset(可以相等),嚴(yán)格子集isStrictSubset(不可以相等)
h.isSubset(of: i)
h.isStrictSubset(of: i)
j.isSubset(of: h)
j.isStrictSubset(of: h)

// 父集:isSupersetOf(可以相等)肄程,嚴(yán)格父集isStrictSuperSetOf(不可以相等)
i.isSuperset(of: h)
i.isStrictSuperset(of: h)
i.isStrictSuperset(of: j)

// 無交集:isDisjoint
let m : Set = ["游戲","動漫"]
let n : Set = ["購物","小吃","化妝"]
m.isDisjoint(with: n)

字典:值無序可重復(fù),但每個值有唯一的鍵(key)

// 定義:Dictionary <鍵類型选浑,值類型>蓝厌,或[鍵類型:值類型]
var a:Dictionary<String,String>
var b:[String:String]

// 用字典字面量來創(chuàng)建字典,鍵與值之間用冒號隔開
var airports = ["PVG":"Shanghai Pudong","CHU":"Dalian","DUB":"Dublin Airport"]

// 計數(shù):count 空否:isEmpty
airports.count
airports.isEmpty
airports

// 添加或更新:字典變量[鍵] = 值
airports["SHQ"] = "Hongqiao Airport"
airports["CHU"] = "大連周水子機場"
airports

// 獲取,Key
airports["DUD"]
airports["CHU"]

// 移除 用key把值設(shè)為nil
airports["CHU"] = nil
airports

// 循環(huán)一個字典 for in 因為鍵值對有2個元素古徒,用元祖變量
for (key,value) in airports {
    print(key,value)
    
}

// 單獨使用其中鍵或值拓提,使用keys或values(可使用 for in)
for key in airports.keys{
    print(key)
}

// 把鍵值對分離成數(shù)組,用[數(shù)組類型](字典變量.keys)隧膘,[數(shù)組類型](字典變量.values)
let codes = [String](airports.keys)
let airportFullname = [String](airports.values)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末代态,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疹吃,更是在濱河造成了極大的恐慌蹦疑,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互墓,死亡現(xiàn)場離奇詭異必尼,居然都是意外死亡蒋搜,警方通過查閱死者的電腦和手機篡撵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門判莉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人育谬,你說我怎么就攤上這事券盅。” “怎么了膛檀?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵锰镀,是天一觀的道長。 經(jīng)常有香客問我咖刃,道長泳炉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任嚎杨,我火速辦了婚禮花鹅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枫浙。我一直安慰自己刨肃,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布箩帚。 她就那樣靜靜地躺著真友,像睡著了一般。 火紅的嫁衣襯著肌膚如雪紧帕。 梳的紋絲不亂的頭發(fā)上盔然,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音是嗜,去河邊找鬼轻纪。 笑死,一個胖子當(dāng)著我的面吹牛叠纷,可吹牛的內(nèi)容都是我干的刻帚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涩嚣,長吁一口氣:“原來是場噩夢啊……” “哼崇众!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起航厚,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顷歌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幔睬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眯漩,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赦抖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舱卡。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖队萤,靈堂內(nèi)的尸體忽然破棺而出轮锥,到底是詐尸還是另有隱情,我是刑警寧澤要尔,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布舍杜,位于F島的核電站,受9級特大地震影響赵辕,放射性物質(zhì)發(fā)生泄漏既绩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一还惠、第九天 我趴在偏房一處隱蔽的房頂上張望熬词。 院中可真熱鬧,春花似錦吸重、人聲如沸互拾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颜矿。三九已至,卻和暖如春嫉晶,著一層夾襖步出監(jiān)牢的瞬間骑疆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工替废, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箍铭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓椎镣,卻偏偏與公主長得像诈火,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子状答,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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