JS HasMap使用

本文介绍了一种使用JavaScript实现的HashMap数据结构。该结构提供了put、get、remove等基本操作,并实现了如containsKey、isEmpty等判断方法。此外,还支持将HashMap转换为字符串、获取所有键值对等功能。

function HashMap() {
var size = 0;
var entry = new Object();

this.put = function (key, value) {
entry[key] = value;
size++;
};

this.putAll = function (map) {
if (typeof map == "object" && !map.sort) {
for (var key in map) {
this.put(key, map[key]);
}
} else {
throw "输入类型不正确,必须是HashMap类型!";
}
};

this.get = function (key) {
return entry[key];
};

this.remove = function (key) {
if (size == 0)
return;
delete entry[key];
size--;
};

this.containsKey = function (key) {
if (entry[key]) {
return true;
}
return false;
};

this.containsValue = function (value) {
for (var key in entry) {
if (entry[key] == value) {
return true;
}
}
return false;
};

this.clear = function () {
entry = new Object();
size = 0;
};

this.isEmpty = function () {
return size == 0;
};

this.size = function () {
return size;
};

this.keySet = function () {
var keys = new Array();
for (var key in entry) {
keys.push(key);
}
return keys;
};

this.entrySet = function () {
var entrys = new Array();
for (var key in entry) {
var et = new Object();
et[key] = entry[key];
entrys.push(et);
}
return entrys;
};

this.values = function () {
var values = new Array();
for (var key in entry) {
values.push(entry[key]);
}
return values;
};

this.each = function (cb) {
for (var key in entry) {
cb.call(this, key, entry[key]);
}
};

this.toString = function () {
return obj2str(entry);
};

function obj2str(o) {
var r = [];
if (typeof o == "string")
return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";
if (typeof o == "object") {
for (var i in o)
r.push("\"" + i + "\":" + obj2str(o[i]));
if (!!document.all && !/^\n?function\s*toString\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {
r.push("toString:" + o.toString.toString());
}
r = "{" + r.join() + "}";
return r;
}
return o.toString();
}
}

 


var mp = new HashMap();
mp.put("key","value"); //向HashMap赋值
mp.size(); //HashMap的大小
mp.toString(); //转换字符串
mp.values(); //获取HashMap中所有的值
mp.entrySet()//获取HashMap返回的Set视图

转载于:https://www.cnblogs.com/vofill/p/5256868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值