Swift 集合类型 Collection Types

265 阅读1分钟

数组

  • 创建空数组
var someInts = [Int]() // []
someInts.append(3) // [3]
someInts = [] // []
  • 创建一个带有默认值的数组
var threeDoubles = Array(repeating: 0.0, count: 3) // [0, 0, 0]
var anotherThreeDoubles = Array(repeating: 2.5, count: 3) // [2.5, 2.5, 2.5]
var sixDoubles = threeDoubles + anotherThreeDoubles // [0, 0, 0, 2.5, 2.5, 2.5]

var shoppingList:[String] = ["Eggs","Milks"] // ["Eggs", "Milks"]
var shopList = ["Eggs","Milks"] // ["Eggs", "Milks"]
  • 判断数组是否为空
if shoppingList.isEmpty {
    print("判断数组是否为空")
}
shoppingList.count
shoppingList.append("Flour") // ["Eggs", "Milks", "Flour"]
shoppingList += ["Cheese"] // ["Eggs", "Milks", "Flour", "Cheese"]
var firstItem = shoppingList[0]
shoppingList[0] = "Six eggs"
  • 获取删除的数组元素
let mapleSyrup = shoppingList.remove(at: 0)
let cheese = shoppingList.removeLast()
  • 遍历数组
for item in shoppingList {
    print(item)
}

for (index,value) in shoppingList.enumerated() {
    print("item \(index) - \(value)")
}

集合

  • 创建空集合
var letters = Set<Character>()
letters.count
letters.insert("a")
letters = []
var favoriteGenres:Set<String> = ["Rock","Classical","Hip hop"] // {"Rock", "Hip hop", "Classical"}
var favoriteSet:Set = ["Rock","Classical","Hip hop"]
  • 判断集合是否为空
if favoriteGenres.isEmpty {
    print("判断集合是否为空")
}
if let removedGenre = favoriteGenres.remove("Rock") {
    print(removedGenre)
}
if favoriteGenres.contains("Classical") {
    print("判断集合是否有某个元素")
}

for genre in favoriteGenres {
    print(genre)
}
for genre in favoriteGenres.sorted() {
    print(genre)
}

字典

  • 创建空字典
var nameOfIntegers = [Int:String]()
nameOfIntegers[16] = "sixteen"
nameOfIntegers = [:]
var airport:[String:String] = ["YYZ":"Toronto","DUB":"Dublin"]
var air = ["YYZ":"Toronto","DUB":"Dublin"]

airport.count
airport["LHR"] = "London"
airport.updateValue("Dublin Airport", forKey: "DUB")
airport.removeValue(forKey: "DUB") // ["LHR": "London", "YYZ": "Toronto"]
  • 判断字典是否为空
if airport.isEmpty {
    print("判断字典是否为空")
}
  • 字典遍历
for (airportCode,airportName) in airport {
    print("code : \(airportCode) - name : \(airportName)")
}
/*
 code : LHR - name : London
 code : YYZ - name : Toronto
 */

for airportCode in airport.keys {
    print(airportCode)
}
/*
 LHR
 YYZ
 */
for airportName in airport.values {
    print(airportName)
}
/*
 London
 Toronto
 */
  • 字典的key和value 构建数组集合
let airportCodes = [String](airport.keys) // ["LHR", "YYZ"]
let airportNames = [String](airport.values) // ["London", "Toronto"]