- 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