javascript實現(xiàn)java中的Map,代碼是在國外的一個網(wǎng)站上看到的(
http:///questions/368280/javascript-hashmap-equivalent),自己稍作了修改,之前也看到過有人用2個數(shù)組實現(xiàn)了Map,但是我感覺效率比較低,現(xiàn)在這個我感覺效率還可以,自己做了下測試,代碼如下:
Map.js
測試代碼如下:
- var l=10000;
- var map=new Map();
- var start=new Date().getTime();
- for(var i=0;i<l;i++){
- map.put("key_"+i,new Date());
- }
- var end=new Date().getTime();
- document.write("向map中添加了 "+l+" 個Date對象..........");
- document.write("<br/>");
- document.write("耗時 "+(end-start)+" 毫秒,map的長度為:"+map.size());
- document.write("<br/>");
- document.write("在map中提取全部數(shù)據(jù)..........");
- document.write("<br/>");
- start=new Date().getTime();
- for(var i=0;i<map.size();i++){
- map.get("key_"+i).getTime();
- }
- end=new Date().getTime();
- document.write("耗時 "+(end-start)+" 毫秒");
- document.write("<br/>");
- document.write("清空map..........");
- document.write("<br/>");
- start=new Date().getTime();
- map.clear();
- end=new Date().getTime();
- document.write("耗時 "+(end-start)+" 毫秒,map的長度為:"+map.size());
- document.write("<br/>");
測試結(jié)果如下:
1.IE7
2.Firefox 3.6.8
3.谷歌瀏覽器5.0
方法next的使用:
- var map=new Map();
- map.put("key_1","value_1");
- map.put("key_2","value_2");
- map.put("key_3","value_3");
- var m=map.next();
- document.write("map.next:key="+m.key()+" value="+m.value());
- document.write("<br/>");
- m=map.next();
- document.write("map.next:key="+m.key()+" value="+m.value());
結(jié)果如下:
- map.next:key=key_2 value=value_2
- map.next:key=key_3 value=value_3