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