Sets是存儲無序的相同類型的值,你能夠在順序不重要的狀況下使用Sets來替代數組,或者當你須要同一個值在集合中只出現一次時。git
1、Sets類型語法數組
寫做Set<Element>,Element是sets容許存儲的類型
spa
建立並初始化一個空的setcode
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 = []
經過數組字面量來建立setblog
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
訪問和修改three
count方法返回set的數據項數目ip
print("I have \(favoriteGenres.count) favorite music genres.") // Prints "I have 3 favorite music genres.
isEmpty判斷set是否爲空ci
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 = ["🐶", "🐱"] let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"] let cityAnimals: Set = ["🐦", "🐭"] houseAnimals.isSubsetOf(farmAnimals) // true farmAnimals.isSupersetOf(houseAnimals) // true farmAnimals.isDisjointWith(cityAnimals) // true