ASP to achieve similar functionality hashMap class

This article introduces the class ASP achieve similar functionality hashMap

 

hashMap java data access is very convenient, but not ASP similar classes. Needed in the development of procedures similar data types, so can construct a function substantially similar hashMap class, key access operation can be realized, data access may be substantially any type of ASP.
The following is the code of the program, attached to an empty ASP can run directly.

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 = 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
 
'获得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功能的类,希望对大家的学习有所启发。

Guess you like

Origin www.cnblogs.com/macdown/p/11928242.html