首页 > 开发 > Asp > 正文

ASP实现类似hashMap功能的类

2019-10-20 15:04:15
字体:
来源:转载
供稿:网友

这篇文章主要介绍了ASP实现类似hashMap功能的类

java中的hashMap存取数据非常方便,可惜ASP中没有类似的类。作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型。

下面是程序的代码,贴到一个空的ASP中可以直接运行。

 

 
  1. <%  
  2. set cuoxin = new Jb  
  3. '给mp对象赋值  
  4. cuoxin.putv "a","cuoxin.com" 
  5. cuoxin.putv "b","www.cuoxin.net" 
  6. cuoxin.putv "c","http://www.cuoxin.net" 
  7. response.write "[键值数量]:"&cuoxin.count  
  8. response.write "<br>" 
  9. response.write "[a]:"&cuoxin.getv("a")  
  10. response.write "<br>" 
  11. response.write ":"&cuoxin.getv("b")  
  12. response.write "<br>" 
  13. response.write "[c]:"&cuoxin.getv("c")  
  14. response.write "<hr>" 
  15. '删除key为"b"的键值  
  16. cuoxin.delv "b" 
  17. response.write "[键值数量]:"&cuoxin.count  
  18. response.write "<br>" 
  19. response.write "[a]:"&cuoxin.getv("a")  
  20. response.write "<br>" 
  21. response.write ":"&cuoxin.getv("b")  
  22. response.write "<br>" 
  23. response.write "[c]:"&cuoxin.getv("c")  
  24. response.write "<hr>" 
  25. '清空cuoxin的所有值  
  26. cuoxin.clear  
  27. '给key为"c"的键值重新赋值  
  28. cuoxin.putv "c","http://www.cuoxin.net" 
  29. response.write "[键值数量]:"&cuoxin.count  
  30. response.write "<br>" 
  31. response.write "[a]:"&cuoxin.getv("a")  
  32. response.write "<br>" 
  33. response.write ":"&cuoxin.getv("b")  
  34. response.write "<br>" 
  35. response.write "[c]:"&cuoxin.getv("c")  
  36. response.write "<hr>" 
  37. Class MtMap  
  38. private arr()  
  39. private arr_len  
  40. '构造函数  
  41. private Sub Class_Initialize  
  42. '其中 arr(0,n)为key,arr(1,n)为value  
  43. arr_len = 0  
  44. redim arr(1,arr_len)  
  45. end sub  
  46.  
  47. '赋值,如果存在则覆盖  
  48. public sub putv(k,v)  
  49. dim is_update  
  50. is_update = false 
  51. arr_len = ubound(arr,2)  
  52. for i=0 to arr_len-1  
  53. if k=arr(0,i) then  
  54. arr(1,i) = v  
  55. is_update = true 
  56. exit for 
  57. end if 
  58. next  
  59. if not is_update then  
  60. arr_len = arr_len +1  
  61. redim preserve arr(1,arr_len)  
  62. arr(0,arr_len) = k  
  63. arr(1,arr_len) = v  
  64. end if 
  65. end sub  
  66. '取得key为"k"的键值  
  67. public function getv(k)  
  68. dim v  
  69. v = "" 
  70. for i=0 to arr_len  
  71. if k=arr(0,i) then  
  72. v = arr(1,i)  
  73. exit for 
  74. end if 
  75. next  
  76. getv = v  
  77. end function  
  78.  
  79. '删除key为"k"的键值  
  80. public sub delv(k)  
  81. arr_len = ubound(arr,2)  
  82. for i=0 to arr_len  
  83. if k=arr(0,i) then  
  84. v = arr(1,i)  
  85. for k = i to arr_len-1  
  86. arr(0,k) = arr(0,k+1)  
  87. arr(1,k) = arr(1,k+1)  
  88. next  
  89. arr_len = arr_len - 1  
  90. redim preserve arr(1,arr_len)  
  91. exit for 
  92. end if 
  93. next  
  94. end sub  
  95.  
  96. '获得cuoxin中键值的数量  
  97. public property get count()  
  98. count = arr_len  
  99. end property  
  100.  
  101. '清空cuoxin中所有的键值  
  102. public sub clear()  
  103. arr_len = 0  
  104. redim arr(1,1)  
  105. end sub  
  106. end class 
  107. %> 

以上就是分享的ASP如何实现类似hashMap功能的类,希望对大家的学习有所启发。


注:相关教程知识阅读请移步到ASP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表