扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:chz 来源:论坛 2007年10月14日
关键字:
Add(Item As Variant,[,Key As Variant][,Before As Variant][,After As Variant]) |
其中的Key为关键字,是一个字符串的表达式,如果以整数为关键字则必须用CStr函数将其转换为字符串。Before和After用于指定添加项所放的相对位置。
如建立一数据结构,用保存学生学号,姓名和成绩。
Public m_colData As New Collection 'm_ColDta用于保存记录 '自定义一数据类型 Type Mytype ID as Strng 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 结束语
集合是面向对象编程的一个很重要的特点,对于多个具有相同特征的对象可以用集合对象来处理,从而提高编程效率和界面的统一。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者