对于整数键,索引编制的速度为O(N)
,因此它看起来像是一个列表。但是很显然(在Unable to properly loop through keys AND values in a VB6 For Each loop中wqw的评论)字符串键的访问时间是O(log(N))
...也许是一棵建立在单链接列表(索引列表元素)上的树?
我尽力获取有关此文档的信息,但是我能找到的只是如何{em>使用 Collection
,而不是它的数据模型是什么。
答案 0 :(得分:3)
我怀疑您会发现有关VBA.Collection的实现细节的任何内容。 (在https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/collection-object上有官方用法参考)
一般建议是考虑改用VBScript字典对象。如果您需要访问密钥,请一定使用它。据此,Dictionary还可以更快达到https://fastexcel.wordpress.com/2012/07/10/comparing-two-lists-vba-udf-shootout-between-linear-search-binary-search-collection-and-dictionary/
我自己做过的另一种选择是利用.NET Hashtable(引用mscorlib.dll)。与VBScript字典相比,我尚未进行任何性能测试,因此值得付出努力的是我(虽然实现起来很有趣)。一个示例在Cannot iterate Hashtable in VBA (Excel)。