VBA教程:数组、集合和字典( 二 )


‘在集合中添加元素
col.Add Item:=6, Key:=”东区”
‘在字典中添加元素
dict.Add Key:=”东区”,Item:=6
然而 , 对于集合 , 没有内置的方法来检查是否已存在指定的键 , 但是可以使用Exists方法检查字典中是否存在指字键 。
什么时候使用
在编程时 , 通常要求我们能创建一个对象 , 能够存放一组相关的值 , 并且能够通过该对象便捷地处理存储的值 , 数组、集合、字典都能实现这个目的 。
数组
当有许多同类型的数据需要逐一处理时 , 可以使用数组 。然而 , 数组的大小在使用之前通常是固定的 , 因此在知道数据数量的前提下使用数组 。
集合
集合可任意添加或删除元素 , 因此对于数量变化的数据使用集合更好 。相对于数组 , 集合更容易使用一些 , 特别是添加元素、遍历元素 。然而 , 集合是只读的 , 你可以添加或删除集合中的元素 , 但不能修改其值 。
字典
有一系列数据 , 但是需要获取不重复元素值时 , 可以使用字典 。
字典与集合
集合是一种很好的数据结构 , 在Excel对象模型中几乎所有的容器结构都是使用集合 , 例如:Workbooks、Worksheets等 。
然而 , 字典有更多的内置方法 , 使得其使用比集合更方便 。特别是下列3个方法:
1.Exists方法:用来判断字典中是否存在指定的键 。(如果要在集合中检查指定的键是否存在 , 则需要额外编写一段代码来完成)
2.Keys方法:返回一个数组 , 包含字典中所有的键 。(同样 , 集合中实现相同的目的需要编写遍历和填充的代码)
3.RemoveAll方法:清除字典中所有的元素 。
此外 , 正如前面提到的 , 字典允许我们修改键和值 。并且 , 由于Dictionary对象使用了散列表和一些先进的排序和索引算法 , 因此字典的运行速度也快于集合的速度 。
数组与集合
与使用数组相比 , 使用集合对象更便于访问和维护:
1.集合成员可以添加在一个已经存在成员的前面或后面 , 这取决于该已有成员的键值或索引值 。
2.集合成员可以通过它们的键值或索引值访问 。
3.集合成员可以通过它们的键值或索引值删除 。但是 , 利用一个索引值删除多个成员时 , 应该从后面开始删除 , 即从索引值较高的成员到索引值较低的成员 , 因为每次删除成员后集合就要重新建立索引 。
数组与字典、集合
正如前面提到的 , 在数组中 , 可以存储用户定义类型 。然而 , 不能在字典或集合中存储用户定义类型 。

推荐阅读