数组
<pre><code>var shoppingList = ["Eggs","Milk"]
</code></pre>
- 获取数组中数据的数量
count
(只读属性) - 使用
isEmpty
检查count
属性的值是否未0 - 使用
append
方法在数组后面添加新数据 - 使用假发赋值运算符
(+=)
在数组后面添加一个或多个拥有相同类型的数据
<pre><code>shoppingList += ["Baking Powder"]
shoppingList += ["Chocolate Spread","Cheese","Butter"]
</code></pre> - 使用下标语法来获取或改变数组中的数据
<pre><code>var firstItem = shoppingList[0] //获取
shoppingList[0] = "Six eggs" //修改
shoppingList[2...4] = ["Bananas", "Apples"]
//下标为2、3的数据被修改成了"Bananas", "Apples",下标为4的数据被删除了</code></pre>
注意: 我们不能使用下标语法在数组尾部添加新项
- 使用
insert(atIndex)
方法在某个索引值之前添加数据 - 使用
removeAtIndex(atIndex)
方法来移除数组中的某一个项 - 使用
removeLast()
移除数组中的最后一项
<pre><code>let apples = shoppingList.removeLast()</code></pre> - 数组遍历
- 方法一
<pre><code>for item in shoppingList {
println(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas</code></pre>
2.方法二
使用enumerate
函数来进行数组遍历。enumerate
返回一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历:
<pre><code>for (index, value) in enumerate(shoppingList) {
println("Item (index + 1): (value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas</code></pre>
集合
集合用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以把集合当做是数组另一形式。
<pre><code>var letters = Set<Character>()
println("letters is of type Set<Character> with (letters.count) items.")
// 打印 "letters is of type Set<Character> with 0 items."</code></pre>
- 添加一个新的元素
insert()
- 获取Set中元素的数量
count
- 使用布尔属性
isEmpty
作为一个缩写形式去检查count
属性是否为0 - 调用Set的
remove(_:)
方法去删除一个元素,如果该值是该Set的一个元素则删除该元素并且返回被删除的元素值,否认如果该Set不包含该值,则返回nil。 - 使用
contains(_:)
方法去检查Set中是否包含一个特定的值。返回Bool - 遍历一个Set
1.方法一
<pre><code>for genre in favoriteGenres {
println("(value)")
}
// Classical
// Jazz
// Hip hop
</code></pre>
2.方法二 (全局sorted()
函数)
<pre><code>-> for genre in sorted(favoriteGenres) {
println("(genre)")
}
// prints "Classical"
// prints "Hip hop"
// prints "Jazz
</code></pre>
-
集合操作
1.使用union(_:)
方法根据两个集合的值创建一个新的集合。
2.使用subtract(_:)
方法根据不在该集合中的值创建一个新的集合。
3.使用intersect(_:)
方法根据两个集合中都包含的值创建的一个新的集合。
4.使用exclusiveOr(_:)
方法根据值在一个集合中但不在两个集合中的值创建一个新的集合。
<pre><code>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))
// []
sorted(oddDigits.subtract(singleDigitPrimeNumbers))
// [1, 9]
sorted(oddDigits.exclusiveOr(singleDigitPrimeNumbers))
// [1, 2, 9]
</code></pre> -
集合比较
1.使用“是否等”运算符(=)
来判断两个集合是否包含相同的值。
2.使用isSubsetOf(_:)
方法来判断一个集合中的值是否也被包含在另外一个集合中。
3.使用isSupersetOf(_:)
方法来判断一个集合中包含的值是另一个集合中所有的值。
4.使用isStrictSubsetOf(_:)
或者isStrictSupersetOf(_:)
方法来判断一个集合是否是另外一个集合的子集合或者父集合并且和特定集合不相等。
5.使用isDisjointWith(_:)
方法来判断两个结合是否不含有相同的值。
<pre><code>let houseAnimals: Set = ["🐶", "🐱"]
let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"]
let cityAnimals: Set = ["🐦", "🐭"]
houseAnimals.isSubsetOf(farmAnimals)
// true
farmAnimals.isSuperSetOf(houseAnimals)
// true
farmAnimals.isDisjointWith(cityAnimals)
// true
</code></pre> Set类型的哈希值
hashValue
字典
<pre><code>var airports = ["TYO": "Tokyo", "DUB": "Dublin"]
</code></pre>
获取字典中数据的数量
count
使用布尔属性
isEmpty
来快捷的检查字典的count
属性是否等于0使用下标语法来添加、修改新的数据项
<pre><code>airports["LHR"] = "London" //添加
airports["LHR"] = "London Heathrow" //修改
</code></pre>作为另一种下标方法,字典的
updateValue(forKey:)
方法可以设置或者更新特定键对应的值,这个方法返回更新值之前的原值removeValueForKey(forKey:)
方法也可以用来在字典中移除键值对,在键值对存在的情况下会移除该键值对并且返回被移除的value
或者在没有值的情况下返回nil
遍历字典
1.方法一
<pre><code>for (airportCode, airportName) in airports {
println("(airportCode): (airportName)")
}
// TYO: Tokyo
// LHR: London Heathrow</code></pre>
2.方法二 (通过访问它的keys或者values属性(都是可遍历集合)检索一个字典的键或者值)
<pre><code>for airportCode in airports.keys {
println("Airport code: (airportCode)")
}
// Airport code: TYO
// Airport code: LHR
for airportName in airports.values {
println("Airport name: (airportName)")
}
// Airport name: Tokyo
// Airport name: London Heathrow</code></pre>