JavaScript實現Java的Map、List功能

來源:互聯網
上載者:User

JavaScript實現Java的Map、List功能,如下代碼:

 
  1. function HashMap(){ 
  2.     this.size=0; 
  3.     this.map=new Object(); 
  4.  
  5. HashMap.prototype.put=function(key,value){ 
  6.     if(!this.map[key]){ 
  7.         this.size++; 
  8.     } 
  9.     this.map[key]=value; 
  10. }; 
  11. HashMap.prototype.get=function(key){ 
  12.     return this.isKey(key)?this.map[key]:null; 
  13. }; 
  14. HashMap.prototype.isKey=function(key){ 
  15.     return (key in this.map); 
  16. }; 
  17. HashMap.prototype.remove=function(key){ 
  18.   if( this.isKey(key) && (delete this.map[key])){   
  19.         this.size--;   
  20.   }   
  21. }; 
  22.  
  23. HashMap.prototype.size=function(){ 
  24.     return this.size; 
  25. }; 
  26.  
  27. HashMap.prototype.find=function(_callback){ 
  28.     for(var _key in this.map){ 
  29.         _callback.call(this,_key,this.map[_key]); 
  30.     } 
  31. }; 
  32. //List 
  33.  
  34. function ArrayList(){ 
  35.     this.size=0; 
  36.     this.list=new Object(); 
  37. }; 
  38. ArrayList.prototype.add=function(obj){ 
  39.     this.list[this.size++]; 
  40.     return this.size; 
  41. }; 
  42. ArrayList.prototype.remove=function(index){ 
  43.     if(this.size>index){ 
  44.         delete this.list[index--]; 
  45.         return this.size--; 
  46.     } 
  47.     return -1; 
  48. }; 
  49. ArrayList.prototype.size=function(){ 
  50.     return this.size; 
  51. }; 
  52. ArrayList.prototype.get=function(index){ 
  53.     return this.size>index?this.list[index]:null; 
  54. }; 
  55. ArrayList.prototype.clear=function(){ 
  56.     this.list=null; 
  57. }; 
  58. ArrayList.prototype.contains=function(obj){ 
  59.     return this.indexOf(obj)>=0?true:false; 
  60. }; 
  61. ArrayList.prototype.indexOf=function(obj){ 
  62.     for(var i=0;i<this.size;i++){ 
  63.         if(this.list[i]==obj){ 
  64.             return i; 
  65.         } 
  66.     } 
  67.     return -1; 
  68. }; 
  69. ArrayList.prototype.isEmpty=function(){ 
  70.     return this.size<0?true:false; 
  71. }; 
  72.  
  73.  
  74. function HashSet(){ 
  75.     this.size=0; 
  76.     this.set=new Object(); 
  77. }; 
  78. HashSet.prototype.add=function(obj){ 
  79.     this.indexOf(obj)<0?this.set[this.size++]=obj:null; 
  80.     return this.size; 
  81. }; 
  82. HashSet.prototype.remove=function(index){ 
  83.     if(this.size>index){ 
  84.         delete this.set[index--]; 
  85.         return this.size--; 
  86.     } 
  87.     return -1; 
  88. }; 
  89. HashSet.prototype.size=function(){ 
  90.     return this.size; 
  91. }; 
  92. HashSet.prototype.get=function(index){ 
  93.     return this.size>index?this.set[index]:null; 
  94. }; 
  95. HashSet.prototype.clear=function(){ 
  96.     this.set=null; 
  97. }; 
  98. HashSet.prototype.contains=function(obj){ 
  99.     return this.indexOf(obj)>=0?true:false; 
  100. }; 
  101. HashSet.prototype.indexOf=function(obj){ 
  102.     for(var i=0;i<this.size;i++){ 
  103.         if(this.set[i]==obj){ 
  104.             return i; 
  105.         } 
  106.     } 
  107.     return -1; 
  108. }; 
  109. HashSet.prototype.isEmpty=function(){ 
  110.     return this.size<0?true:false; 
  111. }; 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.