【Swift學習】Swift編程之旅---集合類型之Sets(七),swiftsets
Sets是儲存無序的相同類型的值,你可以在順序不重要的情況下使用Sets來替代數組,或者當你需要同一個值在集合中只出現一次時。
一、Sets類型文法
寫作Set<Element>,Element是sets允許儲存的類型
建立並初始化一個空的set
var letters = Set<Character>()print("letters is of type Set<Character> with \(letters.count) items.")// Prints "letters is of type Set<Character> with 0 items.
如果可以推斷出它元素的類型也可以寫作
letters = []
通過數組字面量來建立set
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]// favoriteGenres has been initialized with three initial items
或者(因為可以推斷為set<String>)
var favoriteGenres:Set = ["Rock", "Classical", "Hip hop"]// favoriteGenres has been initialized with three initial items
訪問和修改
count方法返回set的資料項目數目
print("I have \(favoriteGenres.count) favorite music genres.")// Prints "I have 3 favorite music genres.
isEmpty判斷set是否為空白
contains(_:)檢查set對象是否包含特定的資料。
if favoriteGenres.contains("Funk") { print("I get up on the good foot.")} else { print("It's too funky in here.")}// Prints "It's too funky in here.
添加新資料項目
insert(_:)向現有的set對象添加新的資料
favoriteGenres.insert("Jazz")// favoriteGenres now contains 4 items
刪除已有的資料項目
remove(_:)向現有的set對象刪除已有的資料
if let removedGenre = favoriteGenres.remove("Rock") { print("\(removedGenre)? I'm over it.")} else { print("I never much cared for that.")}// Prints "Rock? I'm over it.
遍曆set
使用forin語句遍曆set
for genre in favoriteGenres { print("\(genre)")}// Classical// Jazz// Hip hop
set無序儲存資料,使用sort()可以按到升序排序。
intersect(_:)創意一個包含兩set對象共有的資料的新的Set對象
exclusiveOr(_:)創意一個不包含兩set對象共有的資料的新的Set對象
union(_:)創意一個包含兩set對象所有的資料的新的Set對象
subtract(_:)創意一個只存在其中一個已有的set類型資料的新的Set對象
let oddDigits: Set = [1, 3, 5, 7, 9]let evenDigits: Set = [0, 2, 4, 6, 8]let singleDigitPrimeNumbers: Set = [2, 3, 5, 7] oddDigits.union(evenDigits).sort()// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]oddDigits.intersect(evenDigits).sort()// []oddDigits.subtract(singleDigitPrimeNumbers).sort()// [1, 9]oddDigits.exclusiveOr(singleDigitPrimeNumbers).sort()// [1, 2, 9]
==操作符比較2個set的值是否全部相同
let houseAnimals: Set = ["