JS hashMap實例詳解

字號:


    Hashmap是一種非常常用的、應用廣泛的數(shù)據(jù)類型。本文通過實例代碼給大家介紹js hashMap的相關(guān)知識,具體代碼內(nèi)容如下所示:
    代碼如下:
    /**
    * MAP對象,實現(xiàn)MAP功能
    *
    * 接口:
    * size() 獲取MAP元素個數(shù)
    * isEmpty() 判斷MAP是否為空
    * clear() 刪除MAP所有元素
    * put(key, value) 向MAP中增加元素(key, value)
    * remove(key) 刪除指定KEY的元素,成功返回True,失敗返回False
    * get(key) 獲取指定KEY的元素值VALUE,失敗返回NULL
    * element(index) 獲取指定索引的元素(使用element.key,element.value獲取KEY和VALUE),失敗返回NULL
    * containsKey(key) 判斷MAP中是否含有指定KEY的元素
    * containsValue(value) 判斷MAP中是否含有指定VALUE的元素
    * values() 獲取MAP中所有VALUE的數(shù)組(ARRAY)
    * keys() 獲取MAP中所有KEY的數(shù)組(ARRAY)
    *
    * 例子:
    * var map = new Map();
    *
    * map.put("key", "value");
    * var val = map.get("key")
    * ……
    *
    */
    function hashmap() {
    /**
    * 存放數(shù)據(jù)
    */
    this.data = new Object();
    /**
    * 放入一個鍵值對
    * @param {String} key
    * @param {Object} value
    */
    this.put = function(key, value)
    {
    this.data[key] = value;
    };
    /**
    * 獲取某鍵對應的值
    * @param {String} key
    * @return {Object} value
    */
    this.get = function(key)
    {
    return this.containsKey(key)?this.data[key]:null;
    };
    /**
    * 刪除一個鍵值對
    * @param {String} key
    */
    this.remove = function(key)
    {
    delete this.data[key];
    };
    /**
    * 遍歷Map,執(zhí)行處理函數(shù)
    *
    * @param {Function} 回調(diào)函數(shù) function(key,value,index){..}
    */
    this.each = function(fn){
    if(typeof fn != 'function')
    {
    return;
    }
    var len = this.data.length;
    for(var i=;i<len;i++)
    {
    var k = this.data[i];
    fn(k,this.data[k],i);
    }
    };
    /**
    * 獲取鍵值數(shù)組(類似Java的entrySet())
    * @return 鍵值對象{key,value}的數(shù)組
    */
    this.entrys = function()
    {
    var len = this.data.length;
    var entrys = new Array(len);
    for (var i = ; i < len; i++) {
    entrys[i] = {
    key : i,
    value : this.data[i]
    };
    }
    return entrys;
    };
    /**
    * 判斷Map是否為空
    */
    this.isEmpty = function()
    {
    return this.data.length == ;
    };
    /**
    * 獲取鍵值對數(shù)量
    */
    this.size = function()
    {
    return this.data.length;
    };
    /**
    * 重寫toString ,裝成JSON格式
    */
    this.toString = function()
    {
    var s = "[";
    for(var i=;i<this.data.length;i++,s+=','){
    var k = this.data[i];
    s += "{'id':'" + k+"','value':'"+this.data[k]+"'}";
    }
    s=s.substring(, s.length-);
    if(s!=""){
    s+="]";
    }
    return s;
    };
    /**
    * 輸出Value的值
    */
    this.values = function (){
    var _values= new Array();
    for(var key in this.data)
    {
    _values.push(this.data[key]);
    }
    return _values;
    };
    /**
    * 獲取keys
    */
    this.keySet = function (){
    var _keys = new Array();
    for(var key in this.data)
    {
    _keys.push(key);
    }
    return _keys;
    };
    /**
    * 判斷MAP中是否含有指定KEY的元素
    */
    this.containsKey = function(_key)
    {
    return (_key in this.data);
    };
    /**
    * 清空Map
    */
    this.clear = function(){
    this.data.length = ;
    this.data = new Object();
    };
    }
    以上所述是小編給大家介紹的js hashMap實例詳解的相關(guān)知識,希望對大家有所幫助!