javaScript 中的hashMap

JavaScript中简洁实用的HashMap对象(推荐)
2009年01月22日 星期四 10:23
// JavaScript中实现Java的HashMap
//方法说明
//在hashMap对象中添加值
//hashMap.Set("language","JavaScript");
//在hashMap对象中获取值,返回数据:“JavaScript”
//hashMap.Get("language");
//判断hashMap对象中是否有指定变量
//hashMap.Contains("language");//返回True
//hashMap.Contains("type");//返回false
//移除已存在的变量
//hashMap.Remove("language");

//HashMap对象定义
var hashMap = {  
Set : function(key,value){this[key] = value},  
Get : function(key){return this[key]},  
Contains : function(key){return this.Get(key) == null?false:true},  
Remove : function(key){delete this[key]}  
}
/**
 * 简单HashMap
 * 
 */
function HashMap(){
	data={};
	var size=0;
	//清除所有的属性
	this.clear=function(){
		 data={};
	}
	
	/**
	 * 判断key是否存在
	 * @param key
	 * @return Boolean 
	 */
	this.containsKey=function(){
		return Boolean(arguments[0] in data);
	}
	/**
	 * 判断值是否存在
	 * @param value
	 * @return Boolean
	 */
	this.containsValue=function(){
	   	var str=data.toSource();
		return str.indexOf(arguments[0])==-1 ? false: true;
	}
	/**
	 * 返回key对应的v
	 */
	this.get=function(){
		return data[arguments[0]];
	}
	/**
	 * 判断是否为空
	 * @return Boolean
	 */
	this.isEmpty=function(){
		return size==0? true:false;
	}
	/**
	 * 取出所有的key
	 * @return Array()
	 */
	this.keySet=function(){
		var arr=new Array();
		for(var i in data){
			arr.push(i);
		}
		return arr;
	}
	/**
	 * 将key,value放入对象
	 * @param key 
	 * @param value
	 */
	this.put=function(){
	    data[arguments[0]]=[arguments[1]];
	    if(!this.containsKey(arguments[0])){
	    	 size++;
	    }
	   
	}
	/**
	 * 将另外一个HashMap 复制到此Map
	 * @param map
	 */
	this.putAll=function(){
		data=arguments[0].getData();
	}
	/**
	 * 删除key对应的value
	 * @param key
	 * @return value与 key 关联的旧值
	 */
	this.remove=function(){
		var o=this.get(arguments[0]);
		if(o){
			delete data[o];
			return o;
		}else{
			return null;
		}
	}
	/**
	 * 返回此HashMap的大小
	 * @reaturn Int
	 */
	this.size=function(){
		return size;
	}
	/**
	 * 返回此map所有的value集合
	 * @return Connections
	 */
	this.values=function(){
		var arr=new Array();
		for (var i in data) {
			arr.push(data[i])
		}
		return arr;
	}
	this.getData=function(){
		return data;
	}
	
}
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值