Name as String
End Type
'建立一类Class1,如下
Public ID As String
Public Name As String
Public Score As Integer
'定义插入函数用来接受数据到数据结构中
Public Function InserT2col(pData As Mytype)
Dim Myclass As New Class1
Set Myclass = Nothing
Myclass.ID = pData.ID
Myclass.Name = pData.Name
Myclass.Score = pData.Score
m_colData.Add Item:=Myclass, Key:=pData.ID '以ID作为关键字
End Function
这样这建立了数据结构,通过编写处理函数代码就可以对其中的数据进行处理输出,如成绩的排序、统计不及格人数等。
3. 2 使用向导
同样建立上例中建立的自定义类型MyTpye和类Class1。在"项目(Project)"菜单中选取"增加类模块(Add Class Module)",选择"VB类构造(VB Class Builder)",在Cass Builder对话框中,选取栏中的"Add New Collection"按钮,选已存在的类clsData形成集合对象Collection1 类,如图1所示。
图1 Collection Builder对话框
此时系统会自动生成Add,Remove,Item属性和Count方法。
通过定义:Public m_colData As New Collection1 '用于保存记录
调用Collecton1类中的Add方法,即可生成数据结构。
3.3集合与数组的比较
集合和数组都可用下标来调用,但它们之间存在着区别和联系。
(1)相同点。它们都是数据元素的有序集,数组可以看作为限制了数据元素个数的集合。
(2)不同点。①元素的个数不同。数组的大小由创建时决定;集合的大小在创建时并不确定。
②访问元素的效率不同:。集合相当于链表,查找元素时从集合的头一个开始,顺序向下,访问m_coData(99)要比访问_colData(1)慢得多;而数组元素在内存中是顺序存放的,访问m_coData(99)和访问m_coData(1)的时间是一样的。
4 结束语
集合是面向对象编程的一个很重要的特点,对于多个具有相同特征的对象可以用集合对象来处理,从而提高编程效率和界面的统一。




