javascript的HashMap

来源:互联网 发布:手机菜单制作软件 编辑:程序博客网 时间:2024/06/08 06:54
[javascript] view plaincopy
  1. function HashMap() {  
  2.     var size = 0;  
  3.     var entry = new Object();  
  4.       
  5.     this.put = function (key, value) {  
  6.         entry[key] = value;  
  7.         size++;  
  8.     };  
  9.       
  10.     this.putAll = function (map) {  
  11.         if (typeof map == "object" && !map.sort) {  
  12.             for (var key in map) {  
  13.                 this.put(key, map[key]);  
  14.             }  
  15.         } else {  
  16.             throw "输入类型不正确,必须是HashMap类型!";  
  17.         }  
  18.     };  
  19.       
  20.     this.get = function (key) {  
  21.         return entry[key];  
  22.     };  
  23.       
  24.     this.remove = function (key) {  
  25.         if (size == 0)  
  26.             return;  
  27.         delete entry[key];  
  28.         size--;  
  29.     };  
  30.       
  31.     this.containsKey = function (key) {  
  32.         if (entry[key]) {  
  33.             return true;  
  34.         }  
  35.         return false;  
  36.     };  
  37.       
  38.     this.containsValue = function (value) {  
  39.         for (var key in entry) {  
  40.             if (entry[key] == value) {  
  41.                 return true;  
  42.             }  
  43.         }  
  44.         return false;  
  45.     };  
  46.       
  47.     this.clear = function () {  
  48.         entry = new Object();  
  49.         size = 0;  
  50.     };  
  51.       
  52.     this.isEmpty = function () {  
  53.         return size == 0;  
  54.     };  
  55.       
  56.     this.size = function () {  
  57.         return size;  
  58.     };  
  59.       
  60.     this.keySet = function () {  
  61.         var keys = new Array();  
  62.         for (var key in entry) {  
  63.             keys.push(key);  
  64.         }  
  65.         return keys;  
  66.     };  
  67.       
  68.     this.entrySet = function () {  
  69.         var entrys = new Array();  
  70.         for (var key in entry) {  
  71.             var et = new Object();  
  72.             et[key] = entry[key];  
  73.             entrys.push(et);  
  74.         }  
  75.         return entrys;  
  76.     };  
  77.       
  78.     this.values = function () {  
  79.         var values = new Array();  
  80.         for (var key in entry) {  
  81.             values.push(entry[key]);  
  82.         }  
  83.         return values;  
  84.     };  
  85.       
  86.     this.each = function (cb) {  
  87.         for (var key in entry) {  
  88.             cb.call(this, key, entry[key]);  
  89.         }  
  90.     };  
  91.       
  92.     this.toString = function () {  
  93.         return obj2str(entry);  
  94.     };  
  95.       
  96.     function obj2str(o) {  
  97.         var r = [];  
  98.         if (typeof o == "string")  
  99.             return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";  
  100.         if (typeof o == "object") {  
  101.             for (var i in o)  
  102.                 r.push("\"" + i + "\":" + obj2str(o[i]));  
  103.             if (!!document.all && !/^\n?function\s*toString\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {  
  104.                 r.push("toString:" + o.toString.toString());  
  105.             }  
  106.             r = "{" + r.join() + "}";  
  107.             return r;  
  108.         }  
  109.         return o.toString();  
  110.     }  
  111. }  

[javascript] view plaincopy
  1. var mp = new HashMap();  
  2. mp.put("key","value");  
  3. mp.size();  
  4. mp.toString();  
  5. mp.values();  
  6. mp.entrySet()  
  7. ....  
0 0
原创粉丝点击