Swift教程-集合

Swift 有三种主要的集合类,数组字典集合
数组:有顺序的多个值的集合
集合:无顺序的多个值的集合
字典:无顺序的键值对

数组,集合,字典都是使用 generic collections实现的,具体的可以看这个

数组

数组声明

[Int] 的是Array < Int > 的缩写。多数情况下建议使用前者

var fullSyntax =  Array<Int>()
var shortSyntax = [Int]()

初始化数组

var shoppingList: [String] = ["Eggs","Milk"]

访问数组

shoppingList[0] = "Six eggs"

访问多个元素

shoppingList[4...6] = ["Bananas","Apples"]

插入元素

shoppingList.insert("Maple Syrup",atIndex: 0)
shoppingList.append("Flour")

移除元素

let mapleSyrup = shoppingList.removeAtIndex(0)

历遍数组

for item in shoppingList{
    println(item)
}

集合

集合声明

var letters = Set<Character>()

初始化集合

var favoriteGenres: Set<String> = ["Rock","Classical","Hip hop"]

插入集合

favoriteGenres.insert("Jazz")

遍历集合

for genre in favoriteGenres {
    println("\(genre)")
}

两个集合操作

对两个集合的交并补操作

  • union(_:) 两个集合的并集
  • subtract(_:) 两个集合的交集的对于两者交集取补集
  • intersect(_:)两个集合的交集
  • exclusiveOr(_:) 对b取并集的补集
let oddDigits: Set = [1,3,5,7,9]
let evendigits: Set = [0,2,4,6,8]
let singleDigitPrimeNumbers: Set = [2,7]

sorted(oddDigits.union(evendigits))
// [0,1,2,3,4,5,6,7,8,9]
sorted(oddDigits.intersect(evendigits))
// []
sorted(oddDigits.subtract(singleDigitPrimeNumbers))
// [1,9]
sorted(oddDigits.exclusiveOr(singleDigitPrimeNumbers))
// [1,9]

两个集合的比较

let a:Set = [1,8,9]
let b:Set = [1,2]
let c:Set = [7,9]
let d:Set = [1,2]
@H_502_268@b=d @H_502[email protected]etof(a) @H_502[email protected]etof(b) @H_502[email protected]disjointWith(c)
操作符 意义 例子
== 元素全部相同
isSubsetof(_:) (操作数)是否为(参数)的子集
isSupersetof(_:) (操作数) 是否为(参数)的全集
isdisjointWith(_:) 两个集合是否有交集

字典

创建字典

var namesOfIntegers = [Int: String]()

访问字典

airports["LHR"] = "London"

更新元素

if let oldValue = airports.updateValue("dublin Airport",forKey: "dub") {
    println("The old value for dub was \(oldValue).")
}

遍历字典

//键值一起
for (airportCode,airportName) in airports {
    println("\(airportCode): \(airportName)")
}
//根据键
for airportCode in airports.keys {
    println("Airport code: \(airportCode)")
}
//根据值
for airportName in airports.values {
    println("Airport name: \(airportName)")
}

复制所有的键/值

let airportCodes = [String](airports.keys)
// airportCodes is ["YYZ","LHR"]

let airportNames = [String](airports.values)
// airportNames is ["Toronto Pearson","London Heathrow"]

集合类型-苹果官方文档

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...