加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP实现相似hashMap功能的类

发布时间:2023-05-06 13:55:02 所属栏目:Asp教程 来源:
导读:这篇文章主要介绍了ASP实现类似hashMap功能的类

java中的hashMap存取数据非常方便,可惜ASP中没有类似的类。作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操
这篇文章主要介绍了ASP实现类似hashMap功能的类
 
java中的hashMap存取数据非常方便,可惜ASP中没有类似的类。作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型。
 
下面是程序的代码,贴到一个空的ASP中可以直接运行。

<%  
 
set cuoxin = new Jb  
 
'给mp对象赋值  
 
cuoxin.putv "a","cuoxin.com"
 
cuoxin.putv "b","www.cuoxin.net"
 
cuoxin.putv "c","http://www.cuoxin.net"
 
response.write "[键值数量]:"&cuoxin.count  
 
response.write "<br>"
 
response.write "[a]:"&cuoxin.getv("a")  
 
response.write "<br>"
 
response.write ":"&cuoxin.getv("b")  
 
response.write "<br>"
 
response.write "[c]:"&cuoxin.getv("c")  
 
response.write "<hr>"
 
'删除key为"b"的键值  
 
cuoxin.delv "b"
 
response.write "[键值数量]:"&cuoxin.count  
 
response.write "<br>"
 
response.write "[a]:"&cuoxin.getv("a")  
 
response.write "<br>"
 
response.write ":"&cuoxin.getv("b")  
 
response.write "<br>"
 
response.write "[c]:"&cuoxin.getv("c")  
 
response.write "<hr>"
 
'清空cuoxin的所有值  
 
cuoxin.clear  
 
'给key为"c"的键值重新赋值  
 
cuoxin.putv "c","http://www.cuoxin.net"
 
response.write "[键值数量]:"&cuoxin.count  
 
response.write "<br>"
 
response.write "[a]:"&cuoxin.getv("a")  
 
response.write "<br>"
 
response.write ":"&cuoxin.getv("b")  
 
response.write "<br>"
 
response.write "[c]:"&cuoxin.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  
 
 
 
'获得cuoxin中键值的数量  
 
public property get count()  
 
count = arr_len  
 
end property  
 
 
 
'清空cuoxin中所有的键值  
 
public sub clear()  
 
arr_len = 0  
 
redim arr(1,1)  
 
end sub  
 
end class
 
%>
 
以上就是分享的ASP如何实现类似hashMap功能的类,希望对大家的学习有所启发。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章