VBS ArrayList Class

本文介绍了一个用VBA实现的ArrayList类,该类支持添加元素、获取元素等操作,并能自动调整容量确保足够空间存放元素。文章提供了完整的代码示例,展示了如何使用这个自定义的ArrayList类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

None.gifClass ArrayList
None.gif 
Private items()
None.gif 
Private size
None.gif 
None.gif  
Private Sub Class_Initialize
None.gif size 
= 0
None.gif 
ReDim items(1)
None.gif  
End Sub
None.gif
None.gif  
Private Sub Class_Terminate
None.gif items 
= null
None.gif  
End Sub
None.gif
None.gif 
Public Function Add(ByVal value)
None.gif       
If (size = Ubound(items)) Then EnsureCapacity((size + 1))
None.gif
None.gif       items(size) 
= value
None.gif       size 
= size + 1
None.gif       Add 
= size
None.gif 
End Function
None.gif
None.gif 
Public Property Get Item(index)
None.gif  Item 
= items(index)
None.gif 
End Property
None.gif
None.gif 
Public Property Let Item(index, vObject)
None.gif  items(index) 
= vObject
None.gif 
End Property
None.gif
None.gif 
Property Get Count
None.gif  Count 
= size
None.gif 
End Property
None.gif
None.gif
None.gif 
Public Property Get Capacity()
None.gif  Capacity 
= Ubound(items)
None.gif 
End Property
None.gif
None.gif 
Public Property Let Capacity(value)
None.gif            
If (value <> Ubound(items)) Then
None.gif                  
If (value < size) Then Err.Rise 6
None.gif
None.gif                  
If (value > 0Then
None.gif                        
ReDim Preserve items(value)
None.gif                  
Else
None.gif                        
ReDim Preserve items(3)
None.gif                  
End If
None.gif            
End If
None.gif 
End Property
None.gif
None.gif 
Private Sub EnsureCapacity(ByVal min)
None.gif       
If (Ubound(items) < min) Then
None.gif      
Dim num1 : num1 = IIf((Ubound(items) = 0), 4, (Ubound(items) * 2))
None.gif      
If (num1 < min) Then num1 = min
None.gif      Capacity 
= num1
None.gif       
End If
None.gif 
End Sub
None.gif
None.gif
None.gif 
Private Function IIf(j, r1, r2)
None.gif  
IF (j) Then
None.gif   IIf 
= r1
None.gif  
Else
None.gif   IIf 
= r2
None.gif  
End IF
None.gif 
End Function
None.gif
None.gif
End Class
None.gif
None.gif
None.gif示例:
None.gif
None.gif
Dim al : Set al = new ArrayList
None.gifal.Add(
1)
None.gifal.Add(
2)
None.gifal.Add(
3)
None.gifal.Add(
4)
None.gifal.Add(
5)
None.gifal.Add(
6)
None.gifal.Add(
7)
None.gifal.Add(
8)
None.gifal.Add(
9)
None.gifal.Add(
10)
None.gif
None.gif
For i = 0 To al.Count -1
None.gif w(
"Index"& i &""& al.Item(i))
None.gif
Next
None.gif
None.gifw(
"Count: "& al.Count)
None.gifw(
"Capacity: "& al.Capacity)
None.gif
None.gif
Sub w(o)
None.gifResponse.Write(o 
&"<br />")
None.gif
End Sub

转载于:https://www.cnblogs.com/slightboy/archive/2006/05/31/414291.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值