您的位置:首页 > Web前端 > JavaScript

JS实现的HashMap功能

2016-06-14 00:00 363 查看
/**
* *********  操作实例  **************
*    var map = new HashMap();
*    map.put("key1","Value1");
*    map.put("key2","Value2");
*    map.put("key3","Value3");
*    map.put("key4","Value4");
*    map.put("key5","Value5");
*    alert("size:"+map.size()+" key1:"+map.get("key1"));
*    map.remove("key1");
*    map.put("key3","newValue");
*    var values = map.values();
*    for(var i in values){
*        document.write(i+":"+values[i]+"   ");
*    }
*    document.write("<br>");
*    var keySet = map.keySet();
*    for(var i in keySet){
*        document.write(i+":"+keySet[i]+"  ");
*    }
*    alert(map.isEmpty());
*/

function HashMap(){
//定义长度
var length = 0;
//创建一个对象
var obj = new Object();

/**
* 判断Map是否为空
*/
this.isEmpty = function(){
return length == 0;
};

/**
* 判断对象中是否包含给定Key
*/
this.containsKey=function(key){
return (key in obj);
};

/**
* 判断对象中是否包含给定的Value
*/
this.containsValue=function(value){
for(var key in obj){
if(obj[key] == value){
return true;
}
}
return false;
};

/**
*向map中添加数据
*/
this.put=function(key,value){
if(!this.containsKey(key)){
length++;
}
obj[key] = value;
};

/**
* 根据给定的Key获得Value
*/
this.get=function(key){
return this.containsKey(key)?obj[key]:null;
};

/**
* 根据给定的Key删除一个值
*/
this.remove=function(key){
if(this.containsKey(key)&&(delete obj[key])){
length--;
}
};

/**
* 获得Map中的所有Value
*/
this.values=function(){
var _values= new Array();
for(var key in obj){
_values.push(obj[key]);
}
return _values;
};

/**
* 获得Map中的所有Key
*/
this.keySet=function(){
var _keys = new Array();
for(var key in obj){
_keys.push(key);
}
return _keys;
};
/**
* 获得Map中的Key进行排序
*/
this.keySort=function(sortType){
return this.keySet().sort(function(v1,v2){
let cal = v1-v2;
let res = cal==0?0:cal>0?1:-1;
return sortType==="asc"?res:-res;//默认降序
});
}
/**
* 获得Map的长度
*/
this.size = function(){
return length;
};

/**
* 清空Map
*/
this.clear = function(){
length = 0;
obj = new Object();
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js hashmap