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
  • 相关阅读:
    第三次博客作业
    多项式求导--三次作业小结
    Python实现批量修改文件名
    汉字编程 —— 第一次个人编程作业
    PAT甲级代码仓库
    谈谈自己 —— 第一次博客作业
    爬取豆瓣网图书TOP250的信息
    HDU1862
    HDU1408
    HDU1302
  • 原文地址:https://www.cnblogs.com/slightboy/p/414291.html
Copyright © 2011-2022 走看看