/**
* HashMap
* 2021年09月09日
*/
(function (global) {
var _map;
var _length;
global.HashMap = function () {
_map = {};
_length = 0;
};
global.HashMap.prototype = {
put: function (key, value) {
if (!_map.hasOwnProperty(key)) {
_length++;
}
_map[key] = value;
},
get: function (key) {
if (_map.hasOwnProperty(key)) {
return _map[key];
}
return null;
},
containsKey: function (key) {
return _map.hasOwnProperty(key);
},
size: function () {
return _length;
},
remove: function (key) {
if (_map.hasOwnProperty(key)) {
_length--;
return delete _map[key];
}
return false;
},
removeAll: function () {
_map = {};
},
keys: function () {
var keys = [];
for (var item in _map) {
keys.push(item);
}
return keys;
},
values: function () {
var values = [];
for (var item in _map) {
values.push(_map[item]);
}
return values;
}
};
global.HashMap.prototype.constructor = global.HashMap;
})(window);