程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Swift中內置的集合類型學習筆記

Swift中內置的集合類型學習筆記

編輯:更多關於編程

Swift中內置的集合類型學習筆記。本站提示廣大學習愛好者:(Swift中內置的集合類型學習筆記)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift中內置的集合類型學習筆記正文


一、引言

Swift中提供了3種集合類型,Array數據類型,Set集合類型,Dictionary字典類型。Array用於寄存一組有序的數據,數據角標從0開端一次遞增;Set用於寄存一組無序的數據,數據不可以反復;Dictionary也用於寄存一組無序的數據,只是其是依照鍵值對的方式存儲,鍵值必需獨一。這裡借用官方文檔中的一張圖來表示3種集合類型的特點:

二、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)
}

三、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停止集合運算的一些特性:

intersect()辦法前往兩個集合的交集。 exclusiveOr()辦法用於前往兩個集合交集的補集。 union()辦法用於前往兩個集合的並集。 subtract()辦法用於前往第二個集合的補集。

示例代碼如下:

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)

四、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)
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved