我有一个循环来检查值,如果它们不存在则将它们添加到字典中。此检查发生在循环内部,因此反复发生。随着字典的增长,我想有一个内部循环正在进行,每次检查都变得昂贵。为了加快我的整个日常工作,我想知道这是否应该是我应该优化的东西?如果是这样,怎么样?
keycnt = 1
For x = 1 to 500000
STRVAL = returnarray(8, x)
If Not STRDIC.Exists(STRVAL) Then
STRDIC.Add STRVAL, keycnt
keycnt = keycnt + 1
End If
next x
答案 0 :(得分:4)
如果你的字典是Scripting.Dictionary
而不是某些[实现不当]的自定义数据结构类,那么键查找应该是 O(1) 复杂性,而不是 O(n) ,因为您似乎暗示;越来越多的密钥对性能没有影响。
哈希表或字典中的键查找基本上是免费的,在该代码中唯一要修复的是缩进。