# Swift教程-集合

Swift 有三种主要的集合类，数组字典集合

## 数组

#### 数组声明

[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, 3, 5, 7]

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

#### 两个集合的比较

let a:Set = [1,2,3,4,5,6,7,8,9]
let b:Set = [1,2]
let c:Set = [7,8,9]
let d:Set = [1,2]

== 元素全部相同 b=d
isSubsetOf(_:) (操作数)是否为（参数)的子集 b.isSubsetOf(a)
isSupersetOf(_:) (操作数) 是否为（参数)的全集 a.isSupersetOf(b)
isDisjointWith(_:) 两个集合是否有交集 a.isDisjointWith(c)

## 字典

#### 创建字典

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"]

• 本文已收录于以下专栏：

## Silver：用Swift编写iOS、Android和.NET应用

• u010739551
• 2015年03月02日 10:02
• 477

## iOS 8 Metal Swift 教程（二）:3D图形

• sunyazhou13
• 2014年11月07日 10:24
• 932

## 中文版 Apple 官方 Swift 教程《The Swift Programming Language》

Swift 初见 本页内容包括： 简单值（Simple Values）控制流（Control Flow）函数和闭包（Functions and Closures）对象和类（Objects ...
• investzhu
• 2014年06月13日 19:37
• 1698

## swift教程

http://www.runoob.com/swift/swift-tutorial.html
• huangtingting_swift
• 2016年09月03日 19:31
• 31

## Swift教程

• Xoxo_x
• 2016年10月10日 23:39
• 599

## iOS游戏框架Sprite Kit基础教程——Swift版上册第二章-pdf

[@2015-2-0记录一下自己的脚印：啊哈哈哈，找的就是它了iOS游戏框架Sprite Kit基础教程——Swift版上册第二章-pdf，要的赶紧吧，不晓得分享人有没有取消分享。。。 下载地址：ht...
• xiaomengku_it
• 2015年06月16日 20:06
• 531

## Swift 教程:快速入门

• totogo2010
• 2014年10月22日 16:11
• 8477

## Swift完整教程系列

• woaifen3344
• 2015年10月30日 11:53
• 3932

## Swift教程-基本类型

• u013230511
• 2015年07月06日 20:14
• 299

## Swift教程（一）

• lixin2013
• 2015年07月30日 13:48
• 181

举报原因： 您举报文章：Swift教程-集合 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)