zoukankan      html  css  js  c++  java
  • VBS ArrayList Class

    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 > 0Then
                            
    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
  • 相关阅读:
    二叉树的递归遍历 The Falling Leaves UVa 699
    二叉树的递归遍历 天平UVa839
    二叉树的递归遍历 Tree UVa548
    通过缓冲传递数据-结构体
    fread读取文件(二进制文件)
    socket编程--相关函数--sendto();read();
    socket 编程--sockaddr与sockaddr_in区别与联系(转)
    百度Apollo 尝试
    检测服务器端口是否被占用
    qt5的.ui文件在VS2010中无法编译问题
  • 原文地址:https://www.cnblogs.com/slightboy/p/414291.html
Copyright © 2011-2022 走看看