我正在创建一个新字典,说:
var a: [Int: Int] = []
而且,我想将键设置0...n
为1
。
我这样做是相当残酷的:
for i in 0...n {
a[i] = 1
}
n
可能约为700000。而且,此“初始化”需要几个小时。
我知道我可以对数组执行此操作:
var z: [Int] = []
z = Array(0...700000)
几秒钟后,我得到了700000个元素数组。
填充字典的正确方法是什么?非常感谢。
我尝试运行您的代码,进行了一些修改,如下所示:
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?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句