【Swift学习】Swift编程之旅---集合类型之Sets(七)

  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()可以按到升序排序。

【Swift学习】Swift编程之旅---集合类型之Sets(七)_第1张图片

 

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]

 

 

【Swift学习】Swift编程之旅---集合类型之Sets(七)_第2张图片

 

 

==操作符比较2个set的值是否全部相同

let houseAnimals: Set = ["", ""] let farmAnimals: Set = ["", "", "", "", ""] let cityAnimals: Set = ["", ""] houseAnimals.isSubsetOf(farmAnimals) // true farmAnimals.isSupersetOf(houseAnimals) // true farmAnimals.isDisjointWith(cityAnimals) // true

 

你可能感兴趣的:(【Swift学习】Swift编程之旅---集合类型之Sets(七))