Swift中內置的聚集類型進修筆記。本站提示廣大學習愛好者:(Swift中內置的聚集類型進修筆記)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift中內置的聚集類型進修筆記正文
1、引言
Swift中供給了3種聚集類型,Array數據類型,Set聚集類型,Dictionary字典類型。Array用於寄存一組有序的數據,數據角標從0開端一次遞增;Set用於寄存一組無序的數據,數據弗成以反復;Dictionary也用於寄存一組無序的數據,只是其是依照鍵值對的方法存儲,鍵值必需獨一。這裡借用官方文檔中的一張圖來表現3種聚集類型的特色:
2、Array類型
Array平日也被稱為數組,Swift是一品種型平安說話,個中的Array類型也必需肯定其元素的類型,聲明數組類型有兩種辦法,示例以下:
//將數組聲明為Int類型值聚集的數組 var array1:[Int] var array2:Array<Int> //創立空數組 array1 = [] array2 = Array()
數組對象假如經由過程var變量也吸收,則其為可變的數組,可以經由過程append辦法來追加元素,示例以下:
//向數組中追加元素 array1.append(3)
在創立數組時,也能夠對數組停止初始化,示例以下:
//創立數組[0,0,0] var array3 = [Double](count: 3, repeatedValue: 0) //創立數組[2.5,2.5,2.5] var array4 = Array(count: 3, repeatedValue: 2.5) //數組可使用+號直接停止追加 [0,0,0,2.5,2.5,2.5] var array5 = array3+array4
Swift中供給了很多拜訪和修正數組的辦法,示例代碼以下:
//獲得數組中元素個數 array5.count //斷定數組能否為空 array5.isEmpty //經由過程下標拜訪數組中的元素 array5[1] //經由過程下標修正數組元素 array5[1]=2 //修正數據中的一組數據 array5[0...3] = [1,1,1,1] //向數組中某個地位拔出一個數據 array5.insert(3, atIndex: 1) //移除數組某個角標處的元素 array5.removeAtIndex(1) //移除數組的最初一個元素 array5.removeLast() //移除數組第一個元素 array5.removeFirst() //遍歷全部數組 for item in array5 { print(item) } //遍歷數組列舉 for (index,item) in array5.enumerate() { print(index,item) }
3、Set類型
Set類型聚集不存眷元素的次序,然則其可以包管個中元素的獨一性。和Array類型一樣,Set類型來聲明時也須要肯定其內元素的類型,示例以下:
var set1:Set<Character> = ["a","b","c","d"]
上面示例代碼演示對聚集停止操作:
var set1:Set<Character> = ["a","b","c","d"] var set2:Set<Character> = ["e","f","g"] //向聚集中拔出元素 set1.insert("z") //獲得聚集中元素個數 set1.count //斷定聚集能否為空 set1.isEmpty //將聚集中的某個元素移除 set1.remove("a") //移除聚集中的一切元素 set1.removeAll() //斷定聚集中能否包括某個元素 set2.contains("e") //遍歷聚集 for item in set2 { print(item) } //停止從小到年夜的排序遍歷 for item in set2.sort() { print(item) }
Set也支撐停止一些聚集的數學運算,例如交集,並集,補集等,上面一張圖演示了Set停止聚集運算的一些特征:
示例代碼以下:
var set3:Set<Int> = [1,2,3,4] var set4:Set<Int> = [1,2,5,6] //前往交集 {1,2} var setInter = set3.intersect(set4) //前往交集的補集{3,4,5,6} var setEx = set3.exclusiveOr(set4) //前往並集{1,2,3,4,5,6} var setUni = set3.union(set4) //前往第二個聚集的補集{3,4} var setSub = set3.subtract(set4)
應用比擬運算符==可以比擬兩個Set聚集能否相等,當兩個Set聚集中一切元素都相等時,這兩個聚集才相等。上面代碼顯示了與子集相干的運算:
var set5:Set = [1,2] var set6:Set = [2,3] var set7:Set = [1,2,3] var set8:Set = [1,2,3] //斷定能否是某個聚集的子集 set5是set7的子集 前往ture set5.isSubsetOf(set7) //斷定能否是某個聚集的超集 set7是set5的超集 前往ture set7.isSupersetOf(set5) //斷定能否是某個聚集的真子集 set5是set7的真子集 前往ture set5.isStrictSubsetOf(set7) //斷定能否是某個聚集的真超集 set7不是set8的真超集 前往false set7.isStrictSupersetOf(set8)
4、Dictionary類型
Swift中的Dictionary在聲明時必需明白鍵的類型和值的類型,示例以下:
var dic:Dictionary<Int,String> var dic2:[Int:String] = [1:"one",2:"Two"]
拜訪與操作Dictionary的辦法,代碼示例以下:
var dic2:[Int:String] = [1:"One",2:"Two",3:"Three",4:"Four"] //獲得字典鍵值對個數 dic2.count //斷定字典能否為空 dic2.isEmpty //經由過程鍵獲得值 dic2[1] //經由過程鍵修正值 dic2[1] = "First" //添加鍵值 dic2[0] = "Zero" //updateValue 辦法將更新一個鍵值 假如此鍵存在 則更新鍵值 而且將舊的鍵值前往 假如此鍵不存在 則添加鍵值 前往nil 其前往的為一個Optional類型值 可使用if let停止處置 dic2.updateValue("9", forKey: 1) //應用if let 處置updateValue的前往值 if let oldValue = dic2.updateValue("One", forKey: 1) { print("Old Value is \(oldValue)") } //經由過程鍵值獲得的數據也將是有個Optional類型的值 也能夠應用if let if let value = dic2[1] { print("The Value is \(value)") } //移除某個鍵值對 dic2[9]=nil dic2.removeValueForKey(9) //對字典停止遍歷 for (key,value) in dic2 { print(key,value) } //遍歷一切鍵 for key in dic2.keys { print(key) } //遍歷一切值 for value in dic2.values { print(value) } //停止從小到年夜的排序遍歷 for key in dic2.keys.sort() { print(key) }