ASP实现类似Java中的Linked HashMap类
来源:asp之家 发布时间:2010-04-03 20:49:00
'--------------------------------------------------------------
'ASP版HashMap实现
'该实现存储数据为有序数据,类似Java中的LinkedHashMap
'--------------------------------------------------------------
Class HashMap
dim arr()
dim arr_len
'构造函数
private Sub Class_Initialize
'其中 arr(0,n)为key,arr(1,n)为value
arr_len = 0
redim arr(1,arr_len)
End Sub
'========================
'*put方法 往MAP中插入键值对,如果Key存在则覆盖
'@k 键值key
'@v key对应的value值
'========================
public Sub put(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-1) = k
arr(1,arr_len-1) = v
end if
End Sub
'========================
'*getv方法 通过key值获取对应的value
'@k 键值key
'========================
public Function getv(k)
dim 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
'========================
'*keys方法 获取Map中所有的KEY,以数组形式返回
'========================
public Function keys()
dim v()
Redim v(arr_len)
for i=0 to arr_len-1
v(i) = arr(0,i)
next
keys = v
End Function
'========================
'*values方法 获取Map中所有的Value,以数组形式返回
'========================
public Function values()
dim v()
Redim v(arr_len)
for i=0 to arr_len-1
v(i) = arr(1,i)
next
values = v
End Function
'========================
'*remove方法 从MAP中移除指定key的键值对
'@k 键值key
'========================
public Sub remove(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
'========================
'*putAll 将源HashMap的所有值添加到当前对象中,如果存在重复key值将覆盖原有值
'@map 源HashMap
'========================
public Function putAll(map)
if typeName(map)<>"HashMap" then
response.Write "putAll只能存放HashMap"
else
for i=0 to map.length-1
put map.keys()(i),map.values()(i)
next
End If
End Function
'========================
'*length属性 Map中的键值对数
'========================
public property get length()
length = arr_len
End property
'========================
'*removeAll方法 移除MAP中所有值
'========================
public Sub removeAll()
arr_len = 0
redim arr(1,1)
End Sub
End Class
猜你喜欢
- 这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或
- 在风起云涌的互联网浪潮中,产品迭代的速度越来越快。随着用户需求的激增,也不断带来了对设计师能力要求的提高。初入交互设计领域几年来,明显发现可
- 上四篇的内容是把常用的XHTML标签拿出来介绍了一下,不是很详细。不过没关系,重点是要能先知道用他们,以后深入了再去细细研究更为详细的特性以
- asp之家注:那么为什么要使用分页呢?当记录不多的时候,如10个或20个,我们可以也没必要使用分页来显示数据,但是数据是在不断增加的,当到了
- 方案:◆1、SELECT TOP PAGESIZE NEWSTITLEFORM NEWSINFO WHERE NEWSID NOT IN(S
- 产品使用者可分为三个类别,分别是:初级用户、中级用户、高级用户。这三个类别分别代表了用户使用产品的三个阶段,其中初级用户是占最大比例的,中级
- 问:我想问一下我在重新装完系统以后装SQL Server2000时提示:以前某个程序安装已在计算机上创建挂起的文件操作,运行安装
- 如果您还不太了解XML技术,您可以先看看此文:XML的语法、结构以及相关的一些技术 及 XML DOM介绍和例子XML中 CDATA的作用:
- 见下表:序号保留字序号保留字序号保留字1ADD80ESCAPE159OR2ABSOLUTE81EXCEPT160ORDER3ACTION82
- 最近在研究雨哲软件采集程序的时候,需要获取真实软件地址时遇到了需要读取跳转页面跳转后的真实地址的问题。在网上找了很多方法,使用WinHttp
- msxml3.dll 错误 '80004005'未指定的错误/Project/lijiang_071017/include/
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- 在SQL Server开发问题中你可能会问到的十个问题:1、什么是常见的对表和字段的名字约束?2、有没有可能在不了解T-SQL的情况下编写存
- 1.ACCESS查询(query_info):select * from info where stu = name1 and age =
- 保留COOKIES一个小时Response.Cookies("MyCookie").Expires= (now
- 来由:最近的工作一直是学校设计教程的开发,都是自己根据理论知识加一些实际工作经验相结合写的教程,所以不会咬文嚼字,文笔也不一定非常专业和流畅
- 就MySQL而言,大多数程序员都不太了解其设计背景,因此当他们尝试创建自己的数据库时,会留下很多漏洞。要想为MySQL数据库进行合适的配置,
- 一、数字类型所谓的“数字类”,就是指 DECIMAL 和 NUMERIC,它们是同一种类型。它严格的
- <% dim result,result1 str="ad_asp之家_nzlkjlkfjoj
- 如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Response.Write语句要处理. 如果你将输出的全