Javascript之数据结构与算法的HashMap实现
1.自实现HashMap
let LinkedList=require("./LinkedList")
let loseloseHashCode=Symbol();
class HashMap{
constructor(){
this.table=[];
this[loseloseHashCode]=function(key){
let hash=0;
for(let i=0;i<key.length;i++){
hash+=key.charCodeAt(i);
}
return hash%37;
};
this[djb2HashCode]=function(key){
let hash=5381;
for(let i=0;i<key.length;i++){
hash=hash*33+key.charCodeAt(i);
}
return hash%1013;
}
}
put(key,value){
let position=this[loseloseHashCode](key);
if(this.table[position]==undefined){
this.table[position]=new LinkedList();
this.table[position].append(new ValuePair(key,value));
}else if(this.table[position]!=undefined){
let hasKey=false;
let current=this.table[positi