数据结构中的集合(Javascript实现) yinshibanxian

什么是集合

集合是由一组无序且唯一(即不能重复)的项组成的。

集合的Javascript实现

class Set {
    constructor() {
        this.items = {};
    }
    /**
     * 判断集合中是否含有该元素
     */
    has(element) {
        return Object.prototype.hasOwnProperty.call(this.items,element);
    }
    /**
     * 向集合中添加一个元素
     */
    add(element) {
        if(!this.has(element)) { // 集合中原先不存在该元素
            this.items[element] = element;
            return true;
        }
        return false;
    }
    /**
     * 
     * 删除集合中的一个元素
     */
    delete(element) {
        if(this.has(element)) {
            delete this.items[element];
            return true;
        }
        return false;
    }
    /**
     * 清空集合
     */
    clear() {
        this.items = {};
    }
    /**
     * 返回集合的长度
     */
    size() {
        return Object.keys(this.items).length;
    }
    /**
     * 获得集合的值
     */
    values() {
        return Object.values(this.items)
    }
}
const set = new Set();
set.add(1)
console.log(set.values()); // [1]
set.delete(1)
console.log(set.values()); // []
set.add(2)
set.add(3)
console.log(set.size()) // 2