如何在Swift中快速填充字典

时间:2014-08-14 20:54:15

标签: dictionary swift

我正在创建一个新词典,比如说:

var a: [Int: Int] = []

并且,我想将密钥0...n设置为1

我这样做,相当野蛮地:

for i in 0...n {
    a[i] = 1
}

n可能大约是70万。而且,这"初始化"需要几个小时。

我知道我可以对阵列做到这一点:

var z: [Int] = []
z = Array(0...700000)

并且,在几秒钟内我得到一个700000元素阵列。

填写字典的正确方法是什么?非常感谢。

1 个答案:

答案 0 :(得分:3)

我尝试运行你的代码,稍加修改,就像这样:

let n = 700000
let start = NSDate()
var a: [Int: Int] = [:] //Dictionary<Int, Int>(minimumCapacity: n)

for i in 0..<n {
    a[i] = 1
}
let stop = NSDate()
let dif = stop.timeIntervalSinceDate(start)
println(dif)

这运行6.7秒。如果我更换

[:]

Dictionary<Int, Int>(minimumCapacity: n)

它在3秒内初始化(调试版本,没有优化)。也许你没有使用Xcode的最新版本?