2016年4月11日 星期一

swift 學習筆記 2: Set

集合(Set)型別適合用在秩序並不是很重要的搜集(collection)上, 它最重要的特性是其成員都是唯一, 並不會重複, 如有重複的值, 將會被自動剔除掉只剩一個. Character,  StringIntDouble, and Bool等型態的元素等都可當作集合內的元素(value), 由於 Set 無簡單的宣告形式, 只能用 :Set<TYPE>的方式來宣告集合的類型. 例如字串的集合:
let myset:Set<String> =["a", "bb", "ccc"]

集合不同於 Array, 他並沒有順序, 但可以利用 sort() 來排序. 降羃排序用 sort(>) , 升羃排序(預設由小到大排序)用 sort(<) 因此 sort()等同於 sort(<)例如:
myset.sort(>)

Set 重要的工具(method)及屬性(property):
count : 計錄內部成員個數
isEmpty: 當集合內無成員時,其值為 true
insert() : 插入新成員, 如新成員已存在, 將會忽略此運作
remove(): 移除舊成員, 避免成員不存在可以使用 optional binding ( if let ) 來運作.
contains(): 檢視成員是否存在

集合的算術運算:
intersect(): 兩者交集後產生新集合
union(): 聯集後產生新集合
exclusiveOr(): 聯集並移除兩者的交集後產生新集合
subtract(): 相減後產生新集合

集合的邏輯運算
== : 比較兩個集合是否相同
isSubsetOf(): 判斷是否是括符內集合的子集合
isSupersetOf(): 判斷是否是括符內集合的父集合
isStrictSubsetOf()
isDisjointWith()


var c:Set<Int>=[1,6,5,6,1,6,6,7]    // in fact, c will be {5,6,7,1}
if let c.remove(9) {
      printf("Found and remove it")
} else {
      printf("Member is not exist")
}

c.insert(8) // c will be {5,6,7,1,8 }








沒有留言: