|
var UniqueIDGeneretor = require('./UniqueIDGeneretor');
|
|
|
|
function HashSet() {
|
|
this.set = {};
|
|
}
|
|
;
|
|
|
|
HashSet.prototype.add = function (obj) {
|
|
var theId = UniqueIDGeneretor.createID(obj);
|
|
if (!this.contains(theId))
|
|
this.set[theId] = obj;
|
|
};
|
|
|
|
HashSet.prototype.remove = function (obj) {
|
|
delete this.set[UniqueIDGeneretor.createID(obj)];
|
|
};
|
|
|
|
HashSet.prototype.clear = function () {
|
|
this.set = {};
|
|
};
|
|
|
|
HashSet.prototype.contains = function (obj) {
|
|
return this.set[UniqueIDGeneretor.createID(obj)] == obj;
|
|
};
|
|
|
|
HashSet.prototype.isEmpty = function () {
|
|
return this.size() === 0;
|
|
};
|
|
|
|
HashSet.prototype.size = function () {
|
|
return Object.keys(this.set).length;
|
|
};
|
|
|
|
|
|
HashSet.prototype.addAllTo = function (list) {
|
|
var keys = Object.keys(this.set);
|
|
var length = keys.length;
|
|
for (var i = 0; i < length; i++) {
|
|
list.push(this.set[keys[i]]);
|
|
}
|
|
};
|
|
|
|
HashSet.prototype.size = function () {
|
|
return Object.keys(this.set).length;
|
|
};
|
|
|
|
HashSet.prototype.addAll = function (list) {
|
|
var s = list.length;
|
|
for (var i = 0; i < s; i++) {
|
|
var v = list[i];
|
|
this.add(v);
|
|
}
|
|
};
|
|
|
|
module.exports = HashSet;
|
|
|