js实现HashTable(哈希表)的实例分析
一、javascript哈希表简介
javascript里面是没有哈希表的,一直在java,C#中有时候用到了这一种数据结构,javascript里面若没有,感觉非常不顺手。细细看来,其实javascript的object的属性其实与哈希表非常类似。
如:
varperson={};
person["name"]="关羽";
我们只需要在其基础上再封装一些HashTable的函数,就能够得到一个精简版的哈希表。
加入函数如下:
二、代码实现
其具体的实现可以查看代码,都不算很复杂的东西。
functionHashTable(){
varsize=0;
varentry=newObject();
this.add=function(key,value){
if(!this.containsKey(key)){
size++;
}
entry[key]=value;
}
this.getValue=function(key){
returnthis.containsKey(key)?entry[key]:null;
}
this.remove=function(key){
if(this.containsKey(key)&&(deleteentry[key])){
size--;
}
}
this.containsKey=function(key){
return(keyinentry);
}
this.containsValue=function(value){
for(varpropinentry){
if(entry[prop]==value){
returntrue;
}
}
returnfalse;
}
this.getValues=function(){
varvalues=newArray();
for(varpropinentry){
values.push(entry[prop]);
}
returnvalues;
}
this.getKeys=function(){
varkeys=newArray();
for(varpropinentry){
keys.push(prop);
}
returnkeys;
}
this.getSize=function(){
returnsize;
}
this.clear=function(){
size=0;
entry=newObject();
}
}
简单使用示例:
varmanHT=newHashTable();
manHT.add("p1","刘备");
manHT.add("p2","关羽");
$("#div1").text(manHT.getValue("p1"));
以上是本文的全部内容,希望对大家有所帮助!