初探Swift三 - 数组和字典
Swift的集合有两种,是数组和字典,显式声明和隐式声明、增删改查、基本操作等将在本文介绍。
/**
*数组的初始化
*/
//数组只能存同一种数据类型
var array = ["a", "b", "c"]
array[0] = "A"
//显式的声明存储字符串的数组
var array2:[String] = ["a", "b", "c"]
var array3:Array<String> = ["a", "b", "c"]
//创建空数组,存储Int类型
var array4 = [Int]()
var array5 = Array<String>()
var array6:[Int] = []
var array7:Array<Int> = []
//清空数组,清空后,后期仍然只能使用之前定义的数据类型
array2 = []
array2 = [String]()
array2 = Array<String>()
//初始化,10个值,每个值都为0
var array8 = [Int](count:10, repeatedValue:0)
//数组合并
var array9 = [1, 2, 3]
var array10 = array8+array9
/**
*数组的基本操作
*/
var array = ["A", "B", "C", "D"]
//数组的总数
array.count
//数组是否为空
array.isEmpty
//数组结尾加入新的元素
array.append("E")
array += ["F"]
array += ["G", "H"]
//数组任意位置加入新元素
array.insert("b", atIndex: 2)
//删除任意位置的元素,返回所删除的元素的值
array.removeAtIndex(1)
//删除最后一个元素
array.removeLast()
//删除所有元素
array.removeAll(keepCapacity: false)
//修改单个元素
array[0] = "AA"
//修改一组元素,若key为2...4,包含2,3,4三个key,而value只有一个,那么2,3,4三个值将只剩一个
array[2...4] = ["AA", "BB", "CC"]
array[2..<4] = ["AA", "bb"]
//遍历数组
for index in 0..<array.count{
println("\(index) -> \(array[index])")
}
for item in array{
println(item)
}
for (index, item) in enumerate(array){
println("\(index) -> \(item)")
}
/**
* 字典
*键值对,可以是任意类型,但是一旦声明了一个字典,那么只能有一种搭配的类型。比如下面是键是Int,值是String。那么所有的键都必须是Int,所有的值都必须是String
*/
//隐式声明字典
var dictionary = [1:"a", 2:"b", 3:"c"]
//现式声明字典
var dictionary1:Dictionary<Int, String> = [1:"a", 2:"b", 3:"c"]
var dictionary2:[Int:String] = [1:"a", 2:"b", 3:"c"]
//声明空字典、清空一个已有的字典
var dictionary3 = Dictionary<Int, String>()
var dictionary4 = [Int, String]()
//清空字典的特殊表示
dictionary4 = [:]
/**
*字典的基本操作
*/
//字典总数
var dictionary = [1:"a", 2:"b", 3:"c"]
dictionary.count
//字典是否为空
dictionary.isEmpty
//调用,传入的key可以是任意值,程序不会报错,因为返回的是optional。key不存在时返回nil
dictionary[1]
"第一个元素:" + dictionary[1]!
//插入新元素
dictionary[4] = "d"
//修改元素两种方式
dictionary[4] = "e"
var oldValue = dictionary.updateValue("e", forKey: 4)
//删除元素两种方式
dictionary[4] = nil
var oldValue4 = dictionary.removeValueForKey(4)
//字典的遍历
for (key, value) in dictionary{
println("\(key) -> \(value)")
}
//遍历key
Array(dictionary.keys)
[Int](dictionary.keys)
//遍历value
Array(dictionary.values)
[String](dictionary.values)