编程开发 > ASP > 文章内容

ASP实现类似hashMap功能的类

2017-4-27编辑:ljnbset

ASP实现类似hashMap功能的类

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","http://www.jb51.net"

response.write "[键值数量]:"&jb51.count

response.write "
"

response.write "[a]:"&jb51.getv("a")

response.write "
"

response.write ":"&jb51.getv("b")

response.write "
"

response.write "[c]:"&jb51.getv("c")

response.write "
"

'删除key为"b"的键值

jb51.delv "b"

response.write "[键值数量]:"&jb51.count

response.write "
"

response.write "[a]:"&jb51.getv("a")

response.write "
"

response.write ":"&jb51.getv("b")

response.write "
"

response.write "[c]:"&jb51.getv("c")

response.write "
"

'清空jb51的所有值

jb51.clear

'给key为"c"的键值重新赋值

jb51.putv "c","http://www.jb51.net"

response.write "[键值数量]:"&jb51.count

response.write "
"

response.write "[a]:"&jb51.getv("a")

response.write "
"

response.write ":"&jb51.getv("b")

response.write "
"

response.write "[c]:"&jb51.getv("c")

response.write "
"

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

ASP不能打开注册表关键字错误

热点推荐

登录注册
触屏版电脑版网站地图