什么是在VB6中实现的集合?

Tom*_*sky 9 vb6 collections

因此,VB6中的集合会跟踪每个对象的键,您可以通过其键查找对象.

这是否意味着集合被实现为某种哈希表?我意识到你可以在一个集合中拥有多个具有相同键的项目,因此有些东西.

有谁知道VB6集合应该代表什么类型的数据结构?

Mar*_*haw 8

据我所知,VBA Collection实现为链表(由Integer索引和For Each ... Next使用)和哈希表(由键使用).正如Raven所说,你不能拥有同一把钥匙的多件物品.

编辑:

@MarkJ:我应该给出我的引用:Hardcore Visual Basic 2nd Ed.由Bruce McKinney撰写,由Microsoft Press 1997 ISBN 1-57231-422-2出版

行情:

第191页 - 收集班

"简单来说,Collection类是CList类的加强版C++版本.实际上,如果你将CList增强为双向链表并给它一些更多功能(也许可以使用)一个用于查找字符串键的哈希表),你将拥有一个与Visual Basic提供的集合类很相似的集合类."

第197页 - 表现

"而且,事实上,Visual Basic开发人员告诉我,集合是双重链接列表(具有支持索引的附加功能)."

现在,麦金尼更像是一名记者,而不是程序员,而不是开发人员.但是,他确实为微软工作,并在VB和VBA团队中建立了联系.他的解释对我有用.

顺便提一下,双向链表的原因是为了有效地在集合的开头和结尾插入项.