java中的hashMap存取数据非常方便,可惜ASP中没有类似的类。作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型。
下面是程序的代码,贴到一个空的ASP中可以直接运行。
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
 | 
<% set jb51 = new Jb ‘给mp对象赋值 jb51.putv "a","jb51.net"jb51.putv "b","www.jb51.net"jb51.putv "c","//www.jb51.net"response.write "[键值数量]:"&jb51.count response.write "<br>"response.write "[a]:"&jb51.getv("a") response.write "<br>"response.write ":"&jb51.getv("b") response.write "<br>"response.write "[c]:"&jb51.getv("c") response.write "<hr>"‘删除key为"b"的键值 jb51.delv "b"response.write "[键值数量]:"&jb51.count response.write "<br>"response.write "[a]:"&jb51.getv("a") response.write "<br>"response.write ":"&jb51.getv("b") response.write "<br>"response.write "[c]:"&jb51.getv("c") response.write "<hr>"‘清空jb51的所有值 jb51.clear ‘给key为"c"的键值重新赋值 jb51.putv "c","//www.jb51.net"response.write "[键值数量]:"&jb51.count response.write "<br>"response.write "[a]:"&jb51.getv("a") response.write "<br>"response.write ":"&jb51.getv("b") response.write "<br>"response.write "[c]:"&jb51.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 = falsearr_len = ubound(arr,2) for i=0 to arr_len-1 if k=arr(0,i) then arr(1,i) = v is_update = trueexit forend ifnext 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 ifend 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 forend ifnext 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 forend ifnext end sub ‘获得jb51中键值的数量 public property get count() count = arr_len end property ‘清空jb51中所有的键值 public sub clear() arr_len = 0 redim arr(1,1) end sub end class%> | 
以上就是分享的ASP如何实现类似hashMap功能的类,希望对大家的学习有所启发。