最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

简单的JS模拟HashMap类

网站源码admin9浏览0评论

简单的JS模拟HashMap类

/*------------------------------------------------------------------------------ * created by yzh 2003.5.12 * 模拟简单HashMap类 * 请大家引用时保留这段作者声明,此代码为开源代码;使用不受限制。 *  修改履历: *  2002.02.10 version 1.0 *  2003.03.10 version 2.0 *  2004.05.10 version 3.0

*   模拟简单HashMap类,要求key是String,value可以是任何类型 *   方法列表: *     1,HashMap() : 构造函数 *     2, put(key, value) : void *     3, get(key) : Object *     4, keySet() : Array *     5, values() : Array *     6, size() : int *     7, clear() : void *     8, isEmpty() : boolean *     9, containsKey(key) : boolean *    10, containsValue(value) : boolean //如果value是Object类型或者数组类型,存在bug *    11, putAll(map) : void *    12, remove(key) : void *    用法: *      var map = new JHashMap();    *      map.put("one","一只小猪"); *      map.put("two","两只小猪"); *      map.put("three","三只小猪"); *  *      print("[ toString() ] : " + map); *      print("[ get() ] :  " + map.get("one")); *      print("[ keySet() ] :  " + map.keySet()); *      print("[ values() ] :  " + map.values()); *      print("[ size() ] :  " + map.size()); *      print("[ isEmpty() ] :  " + map.isEmpty()); *      print("[ containsKey() ] :  " + map.containsKey("one")); *      print("[ containsValue() ] :  " + map.containsValue("三只小猪")); *   *      //putAll *      var mapTemp = new JHashMap(); *      mapTemp.put("four","四只小猪"); *      mapTemp.put("five","五只小猪"); *      map.putAll(mapTemp); *      print("[ putAll() ] :  " + map); *   *      //remove *      map.remove("two"); *      map.remove("one"); *      print("[ remove() ] :  " + map); *   *      //clear *      map.clear() *      print("[ clear() ] :  " + map.size()); *      //辅助方法 *      function print(msg) *      { *         document.write(msg + ""); *      }

* -------------------------------------------------------------------------------*/ /*  * HashMap version 3.0  * HashMap构造函数 */ function JHashMap() {     this.length = 0;     this.prefix = "hashmap_prefix_20040716_"; } /**  * 向HashMap中添加键值对  */ JHashMap.prototype.put = function (key, value) {     this[this.prefix + key] = value;     this.length ++; } /**  * 从HashMap中获取value值  */ JHashMap.prototype.get = function(key) {     return typeof this[this.prefix + key] == "undefined"             ? null : this[this.prefix + key]; } /**  * 从HashMap中获取所有key的集合,以数组形式返回  */ JHashMap.prototype.keySet = function() {     var arrKeySet = new Array();     var index = 0;     for(var strKey in this)     {         if(strKey.substring(0,this.prefix.length) == this.prefix)             arrKeySet[index ++] = strKey.substring(this.prefix.length);     }     return arrKeySet.length == 0 ? null : arrKeySet; } /**  * 从HashMap中获取value的集合,以数组形式返回  */ JHashMap.prototype.values = function() {     var arrValues = new Array();     var index = 0;     for(var strKey in this)     {         if(strKey.substring(0,this.prefix.length) == this.prefix)             arrValues[index ++] = this[strKey];     }     return arrValues.length == 0 ? null : arrValues; } /**  * 获取HashMap的value值数量  */ JHashMap.prototype.size = function() {     return this.length; } /**  * 删除指定的值  */ JHashMap.prototype.remove = function(key) {     delete this[this.prefix + key];     this.length --; } /**  * 清空HashMap  */ JHashMap.prototype.clear = function() {     for(var strKey in this)     {         if(strKey.substring(0,this.prefix.length) == this.prefix)             delete this[strKey];       }     this.length = 0; } /**  * 判断HashMap是否为空  */ JHashMap.prototype.isEmpty = function() {     return this.length == 0; } /**  * 判断HashMap是否存在某个key  */ JHashMap.prototype.containsKey = function(key) {     for(var strKey in this)     {        if(strKey == this.prefix + key)           return true;      }     return false; } /**  * 判断HashMap是否存在某个value  */ JHashMap.prototype.containsValue = function(value) {     for(var strKey in this)     {        if(this[strKey] == value)           return true;      }     return false; } /**  * 把一个HashMap的值加入到另一个HashMap中,参数必须是HashMap  */ JHashMap.prototype.putAll = function(map) {     if(map == null)         return;     if(map.constructor != JHashMap)         return;     var arrKey = map.keySet();     var arrValue = map.values();     for(var i in arrKey)        this.put(arrKey[i],arrValue[i]); } //toString JHashMap.prototype.toString = function() {     var str = "";     for(var strKey in this)     {         if(strKey.substring(0,this.prefix.length) == this.prefix)               str += strKey.substring(this.prefix.length)                   + " : " + this[strKey] + "\r\n";     }     return str; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2006-03-24,如有侵权请联系 cloudcommunity@tencent 删除hashmapmapprefix集合数组

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论