当前位置: 代码迷 >> JavaScript >> JavaScript实现Java的Map、List功能(其他论坛下看到的)
  详细解决方案

JavaScript实现Java的Map、List功能(其他论坛下看到的)

热度:122   发布时间:2012-09-25 09:55:59.0
JavaScript实现Java的Map、List功能(其他论坛上看到的)

JavaScript实现Java的Map、List功能,如下代码

function?HashMap(){?

????this.size=0;?

????this.map=new?Object();?

}?

?

HashMap.prototype.put=function(key,value){?

????if(!this.map[key]){?

????????this.size++;?

????}?

????this.map[key]=value;?

};?

HashMap.prototype.get=function(key){?

????return?this.isKey(key)?this.map[key]:null;?

};?

HashMap.prototype.isKey=function(key){?

????return?(key?in?this.map);?

};?

HashMap.prototype.remove=function(key){?

??if(?this.isKey(key)?&&?(delete?this.map[key])){???

????????this.size--;???

??}???

};?

?

HashMap.prototype.size=function(){?

????return?this.size;?

};?

?

HashMap.prototype.find=function(_callback){?

????for(var?_key?in?this.map){?

????????_callback.call(this,_key,this.map[_key]);?

????}?

};?

//List?

?

function?ArrayList(){?

????this.size=0;?

????this.list=new?Object();?

};?

ArrayList.prototype.add=function(obj){?

????this.list[this.size++];?

????return?this.size;?

};?

ArrayList.prototype.remove=function(index){?

????if(this.size>index){?

????????delete?this.list[index--];?

????????return?this.size--;?

????}?

????return?-1;?

};?

ArrayList.prototype.size=function(){?

????return?this.size;?

};?

ArrayList.prototype.get=function(index){?

????return?this.size>index?this.list[index]:null;?

};?

ArrayList.prototype.clear=function(){?

????this.list=null;?

};?

ArrayList.prototype.contains=function(obj){?

????return?this.indexOf(obj)>=0?true:false;?

};?

ArrayList.prototype.indexOf=function(obj){?

????for(var?i=0;i<this.size;i++){?

????????if(this.list[i]==obj){?

????????????return?i;?

????????}?

????}?

????return?-1;?

};?

ArrayList.prototype.isEmpty=function(){?

????return?this.size<0?true:false;?

};?

?

?

function?HashSet(){?

????this.size=0;?

????this.set=new?Object();?

};?

HashSet.prototype.add=function(obj){?

????this.indexOf(obj)<0?this.set[this.size++]=obj:null;?

????return?this.size;?

};?

HashSet.prototype.remove=function(index){?

????if(this.size>index){?

????????delete?this.set[index--];?

????????return?this.size--;?

????}?

????return?-1;?

};?

HashSet.prototype.size=function(){?

????return?this.size;?

};?

HashSet.prototype.get=function(index){?

????return?this.size>index?this.set[index]:null;?

};?

HashSet.prototype.clear=function(){?

????this.set=null;?

};?

HashSet.prototype.contains=function(obj){?

????return?this.indexOf(obj)>=0?true:false;?

};?

HashSet.prototype.indexOf=function(obj){?

????for(var?i=0;i<this.size;i++){?

????????if(this.set[i]==obj){?

????????????return?i;?

????????}?

????}?

????return?-1;?

};?

HashSet.prototype.isEmpty=function(){?

????return?this.size<0?true:false;?

};?

  相关解决方案