• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 思想汇报
  • 发言讲话稿
  • 演讲稿
  • 申请书
  • 读后感
  • 报告材料
  • 策划方案
  • 当前位置: 写作资料库 > 其他范文 > 正文

    用ASP实现hashMap功能的类|链表类的实现及其简单功能

    时间:2018-08-15 16:36:54 来源:写作资料库 本文已影响 写作资料库手机站

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

    下面是程序的代码,贴到一个空的ASP中可以直接运行.有问题可以在这里与我交流:

    <%
    "miantuanMap的使用范例
    "作者:
    "email:ray@
    "qq:12694448
    "交流区:

    "实例化一个MtMap类的对象
    set miantuanMap = new MtMap
    "给mp对象赋值
    miantuanMap.putv "a",""
    miantuanMap.putv "b",""
    miantuanMap.putv "c",""
    response.write "[键值数量]:"&miantuanMap.count
    response.write "<br>"
    response.write "[a]:"&miantuanMap.getv("a")
    response.write "<br>"
    response.write ":"&miantuanMap.getv("b")
    response.write "<br>"
    response.write "[c]:"&miantuanMap.getv("c")
    response.write "<hr>"
    "删除key为"b"的键值
    miantuanMap.delv "b"
    response.write "[键值数量]:"&miantuanMap.count
    response.write "<br>"
    response.write "[a]:"&miantuanMap.getv("a")
    response.write "<br>"
    response.write ":"&miantuanMap.getv("b")
    response.write "<br>"
    response.write "[c]:"&miantuanMap.getv("c")
    response.write "<hr>"
    "清空miantuanMap的所有值
    miantuanMap.clear
    "给key为"c"的键值重新赋值
    miantuanMap.putv "c",""
    response.write "[键值数量]:"&miantuanMap.count
    response.write "<br>"
    response.write "[a]:"&miantuanMap.getv("a")
    response.write "<br>"
    response.write ":"&miantuanMap.getv("b")
    response.write "<br>"
    response.write "[c]:"&miantuanMap.getv("c")
    response.write "<hr>"
    "-------------------------------------
    "实现类似hashMap功能的类
    "作者:
    "email:ray@
    "qq:12694448
    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

    "获得MtMap中键值的数量
    public property get count()
    count = arr_len
    end property

    "清空MtMap中所有的键值
    public sub clear()
    arr_len = 0
    redim arr(1,1)
    end sub
    end class
    %>