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"));
以上是本文的全部内容,希望对大家有所帮助!