JavaScript模擬HashMap類效果程式碼

antzone發表於2017-03-26

本章節介紹片一下如何利用javascript模擬實現HashMap類的一些功能,因為js本身是沒有這樣的類的。

HashMap類通常具有新增、刪除、查詢、刪除等功能,下面就是我們模擬實現的程式碼。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function HashMap(){  /**Map大小**/
  var size = 0;
  /**物件**/
  var entry = new Object();
  /**Map的存put方法**/
  this.put=function(key,value){
    if(!this.containsKey(key)){
      size++;
      entry[key] = value;
    }
  }
  /**Map取get方法**/
  this.get=function(key){
    return this.containsKey(key)?entry[key] : null;
  }
  /**Map刪除remove方法**/
  this.remove = function(key){
    if(this.containsKey(key) && (delete entry[key])){
      size--;
    }
  }
  /**是否包含Key**/
  this.containsKey = function(key) {
    return (key in entry);
  }
  /**是否包含Value**/
  this.containsValue = function(value) {
    for(var prop in entry){
      if (entry[prop] == value) {
        return true;
      }
    }
    return false;
  }
  /**所有的Value**/
  this.values = function() {
    var values = new Array();
    for (var prop in entry) {
      values.push(entry[prop]);
    }
    return values;
  }
  /**所有的 Key**/
  this.keys = function() {
    var keys = new Array();
    for(var prop in entry){
      keys.push(prop);
    }
    return keys;
  }
  /**Map size**/
  this.size = function() {
    return size;
  }
  /**清空Map**/
  this.clear = function() {
    size = 0;
    entry = new Object();
  }
}
//建立HashMap物件 
var hashMap = new HashMap();
hashMap.put("A", "1");
hashMap.put("B", "2");
hashMap.put("A", "5");
hashMap.put("C", "3");
hashMap.put("A", "4");
cosnole.log(hashMap.size());

上面的程式碼模擬實現了我們想要的功能,程式碼比較簡單,這裡就不多介紹了。

相關文章