【Swift學習】Swift編程之旅---集合類型之Sets(七)

  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
相關文章
相關標籤/搜索