关闭

js 实现hashmap

标签: jsmap
279人阅读 评论(0) 收藏 举报
分类:
/**
 * Created by zhaodan on 16/10/10
 *
 * *********  操作实例  **************
 *    var map = new HashMap();
 *    map.put("key1","Value1");
 *    map.put("key2","Value2");
 *    map.put("key3","Value3");
 *    map.put("key4","Value4");
 *    map.put("key5","Value5");
 *    alert("size:"+map.size()+" key1:"+map.get("key1"));
 *    map.remove("key1");
 *    map.put("key3","newValue");
 *    var values = map.values();
 *    for(var i in values){
*		document.write(i+":"+values[i]+"   ");
*	}
 *    document.write("<br>");
 *    var keySet = map.keySet();
 *    for(var i in keySet){
*		document.write(i+":"+keySet[i]+"  ");
*	}
 *    alert(map.isEmpty());
 */
function HashMap() {
  //定义长度
  var length = 0;
  //创建一个对象
  var obj = new Object();

  /**
   * 判断Map是否为空
   */
  this.isEmpty = function () {
    return length == 0;
  };

  /**
   * 判断对象中是否包含给定Key
   */
  this.containsKey = function (key) {
    return (key in obj);
  };

  /**
   * 判断对象中是否包含给定的Value
   */
  this.containsValue = function (value) {
    for (var key in obj) {
      if (obj[key] == value) {
        return true;
      }
    }
    return false;
  };

  /**
   *向map中添加数据
   */
  this.put = function (key, value) {
    if (!this.containsKey(key)) {
      length++;
    }
    obj[key] = value;
  };

  /**
   * 根据给定的Key获得Value
   */
  this.get = function (key) {
    return this.containsKey(key) ? obj[key] : null;
  };

  /**
   * 根据给定的Key删除一个值
   */
  this.remove = function (key) {
    if (this.containsKey(key) && (delete obj[key])) {
      length--;
    }
  };

  /**
   * 获得Map中的所有Value
   */
  this.values = function () {
    var _values = new Array();
    for (var key in obj) {
      _values.push(obj[key]);
    }
    return _values;
  };

  /**
   * 获得Map中的所有Key
   */
  this.keySet = function () {
    var _keys = new Array();
    for (var key in obj) {
      _keys.push(key);
    }
    return _keys;
  };

  /**
   * 获得Map的长度
   */
  this.size = function () {
    return length;
  };

  /**
   * 清空Map
   */
  this.clear = function () {
    length = 0;
    obj = new Object();
  };
}

exports.newHashMap = function () {
  return new HashMap();
}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人钱柜娱乐开户,不代表CSDN网站的钱柜娱乐开户或立场

js中的hashmap实现

javascript原生的map特性:  Js代码   var myMap = {};   myMap['key1'] = {name:'amhuma...
  • lizhitao
  • lizhitao
  • 2015-02-04 23:52
  • 1504

hashmap统计字符串中每个字符出现的次数

package com.heima.test; import java.util.HashMap; import java.util.Map; import java.util.Scanner; ...
  • qq_34533413
  • qq_34533413
  • 2016-08-31 17:37
  • 2248

Jdk1.8中的HashMap实现原理

HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 ...
  • Richard_Jason
  • Richard_Jason
  • 2016-12-26 16:33
  • 5656

实现类似于Java中HashMap功能的js脚本

  • 2009-03-02 14:56
  • 2KB
  • 下载

js 实现HashMap功能

  • 2012-05-04 10:31
  • 5KB
  • 下载

JS中实现简单实用的HashMap

js中其实是有map这种特性的,但是不是非常好用。无意中在guirudaoge博主的文章(/guirudaoge/article/details/8433559...
  • ouyang111222
  • ouyang111222
  • 2015-07-31 17:28
  • 469

js中实现hashmap的读写

function hashMap(){ /** * Map大小 */ var size = 0; /** * 容器默认最大长度 */ ...
  • xuweilinjijis
  • xuweilinjijis
  • 2013-03-08 16:28
  • 3488

【JavaScript】JS实现HashMap

/** * ********* 操作实例 ************** * var map = new HashMap(); * map.put("key1","Value1"); ...
  • qq_28602957
  • qq_28602957
  • 2017-06-19 20:47
  • 776

转载和积累系列 - js实现 hashMap

var hash_map = function () { var hash_table_length = 1024 * 1024; //2的幂次方 var hash_table = new Ar...
  • initphp
  • initphp
  • 2012-09-27 14:42
  • 1077

HashMap.js

  • 2012-02-09 10:08
  • 3KB
  • 下载
    个人资料
    • 访问:9769次
    • 积分:196
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条
    文章分类
    文章存档
    最新评论