这篇文章主要介绍了ASP实现类似hashMap功能的类
java中的hashMap存取数据非常方便,可惜ASP中没有类似的类。作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型。
下面是程序的代码,贴到一个空的ASP中可以直接运行。
- <%
- set vevb = new Jb
- '给mp对象赋值
- vevb.putv "a","vevb.com"
- vevb.putv "b","www.vevb.net"
- vevb.putv "c","http://www.vevb.net"
- response.write "[键值数量]:"&vevb.count
- response.write "<br>"
- response.write "[a]:"&vevb.getv("a")
- response.write "<br>"
- response.write ":"&vevb.getv("b")
- response.write "<br>"
- response.write "[c]:"&vevb.getv("c")
- response.write "<hr>"
- '删除key为"b"的键值
- vevb.delv "b"
- response.write "[键值数量]:"&vevb.count
- response.write "<br>"
- response.write "[a]:"&vevb.getv("a")
- response.write "<br>"
- response.write ":"&vevb.getv("b")
- response.write "<br>"
- response.write "[c]:"&vevb.getv("c")
- response.write "<hr>"
- '清空vevb的所有值
- vevb.clear
- '给key为"c"的键值重新赋值
- vevb.putv "c","http://www.vevb.net"
- response.write "[键值数量]:"&vevb.count
- response.write "<br>"
- response.write "[a]:"&vevb.getv("a")
- response.write "<br>"
- response.write ":"&vevb.getv("b")
- response.write "<br>"
- response.write "[c]:"&vevb.getv("c")
- response.write "<hr>"
- Class MtMap
- private arr()
- private arr_len
- '构造函数
- private Sub Class_Initialize
- '其中 arr(0,n)为key,arr(1,n)为value
- arr_len = 0
- redim arr(1,arr_len)
- end sub
- '赋值,如果存在则覆盖
- public sub putv(k,v)
- dim is_update
- is_update = false
- arr_len = ubound(arr,2)
- for i=0 to arr_len-1
- if k=arr(0,i) then
- arr(1,i) = v
- is_update = true
- exit for
- end if
- next
- if not is_update then
- arr_len = arr_len +1
- redim preserve arr(1,arr_len)
- arr(0,arr_len) = k
- arr(1,arr_len) = v
- end if
- end sub
- '取得key为"k"的键值
- public function getv(k)
- dim v
- v = ""
- for i=0 to arr_len
- if k=arr(0,i) then
- v = arr(1,i)
- exit for
- end if
- next
- getv = v
- end function
- '删除key为"k"的键值
- public sub delv(k)
- arr_len = ubound(arr,2)
- for i=0 to arr_len
- if k=arr(0,i) then
- v = arr(1,i)
- for k = i to arr_len-1
- arr(0,k) = arr(0,k+1)
- arr(1,k) = arr(1,k+1)
- next
- arr_len = arr_len - 1
- redim preserve arr(1,arr_len)
- exit for
- end if
- next
- end sub
- '获得vevb中键值的数量
- public property get count()
- count = arr_len
- end property
- '清空vevb中所有的键值
- public sub clear()
- arr_len = 0
- redim arr(1,1)
- end sub
- end class
- %>
以上就是分享的ASP如何实现类似hashMap功能的类,希望对大家的学习有所启发。
新闻热点
疑难解答