本篇介绍Swift的基础知识:数组(Array),集合(Set)和字符(Dictionary)。
Title: Swift基础入门(3):数组,集合和字典
Author: Yunyao Zhang(张云尧)
E-mail: aidaizyy@gmail.com
Last Modified: 2015-07-16
数组
构造
|
|
数组的元素只能有一种数据类型。
数量
- Array.count:属性
count
表示数组Array
的元素个数。 - Array.isEmpty:属性
isEmpty
表示数组Array
的元素是否为0个,结果为true
或false
。
访问
- Array[i]:通过下标
[i]
访问数组Array
的第i
位,可修改。
遍历
|
|
添加
- Array.append(Item):将元素
Item
添加到数组Array
的尾部。 - Array.imsert(Item, atIndex: i):将元素
Item
添加到数组Array
的第i
位。 - Array += [Item1, Item2]:将元素
Item1
和Item2
添加到数组Array
的尾部。
删除
- Array.removeAtIndex(i):删除数组
Array
的第i
位。 - Array.removeLast():删除数组
Array
的最后一位。
替换
- Array[m…n] = [Item1, Item2]:用元素
Item1
和Item2
替换数组Array
的第m
位到第n
位。这种方法不能用于添加新元素。
集合
集合中的元素没有确定顺序,且每个元素只出现一次。
构造
|
|
集合的元素只能有一种数据类型。
数量
- Set.count:属性
count
表示集合Set
的元素个数。 - Set.isEmpty:属性
isEmpty
表示集合Set
的元素是否为0个,结果为true
或false
。
遍历
|
|
因为Set
中没有确定顺序,可以通过sorted(Set)
函数返回一个排序的集合。
添加
- Set.imsert(Item):将元素
Item
添加到集合Set
中。
删除
- Set.remove(Item):删除集合
Set
中的元素Item
,成功则返回Item
,如果集合中不包含Item
则返回nil
。 - Set.removeAll():删除集合
Set
中的所有元素
包含
- Set.contains(Item):检查集合
Set
是否包含元素Item
,返回true
或false
。
比较
|
|
- ==:判断两个集合是否相等
- Set1.isSubsetOf(Set2):判断
Set1
是否是Set2
的子集 - Set1.isSupersetOf(Set2):判断
Set1
是否是Set2
的父集 - Set1.isStrictSubsetOf(Set2),Set1.isStrictSupersetOf(Set2):和上面方法相似,不过两个集合不能相等。
- Set1.isDisjoinWith(Set2):判断
Set1
和Set2
是否完成没有一个相同元素
上述方法都返回true
或false
。
操作
|
|
- Set1.intersects(Set2):返回
Set1
和Set2
的交集,即两个集合中都有的元素 - Set1.union(Set2):返回
Set1
和Set2
的并集,即两个集合中的所有元素 - Set1.subtract(Set2):返回
Set1
和Set2
的差集,即Set1
中有的且Set2
中没有的元素 - Set1.exclusiverOr(Set2):返回并集减去并集的集合,即
Set1
中独有的和Set2
中独有的元素,也就是所有元素减去两个集合中都有的元素。
哈希值
Swift中的所有基本类型默认都是可哈希的,通过a.hashValue
求得哈希值。哈希值相等可以判断对象相同,如a == b
即a.hashValue == b.hashValue
。
字典
字典中每个值(Value)都关联唯一的建(key)。
构造
在构造过程中,键值对默认用[key 1: value 1, key 2: value 2, key 3: value 3]
的形式。
数量
- Dictionary.count:属性
count
表示字典Dictionary
的元素个数。 - Dictionary.isEmpty:属性
isEmpty
表示字典Dictionary
的元素是否为0个,结果为true
或false
。
访问
- Dictionary[key]:通过下标
[key]
访问字典Dictionary
的键key
对应的值,可修改。
遍历
|
|
for-in
可便利字典,可便利键值对(key, value)
,也可以通过属性keys
或values
只便利键值其中一项。
字典的属性keys
和values
返回数组。
添加
- Dictionary[key] = value:更新字典
Dictionary
中键key
对应的值,如果不存在,则将键值对添加到字典 Dictionary
中。 - Dicitonary.updateValue(value, forkey: key):更新字典
Dictionary
中键key
对应的值,如果不存在,则将键值对添加到字典 Dictionary
。
注意:该方法返回原值,即执行updateValue
方法之前键key
对应的值,如果不存在,则返回nil
。
删除
- Dictionary[key] = nil:删除字典
Dictionary
中键key
对应的值。 - Dictionary.removeValueForKey(key):删除字典
Dictionary
中键key
对应的值,返回删除的值,如果不存在,则返回nil
。
添加操作和删除操作返回值有可能为nil
,都是可选类型,使用时需要进行判断是否有值。
转载请注明原作者和出处。
如果觉得这篇文章对您有帮助或启发,请随意打赏~
![]()
![]()