javascript版的HashMap

function HashMap() {
  var length = 0;
  var obj = new Object();
  this.isEmpty = function () {
    return length == 0;
  };
  this.containsKey = function (key) {
    return (key) ? (key in obj)  : false;
  };
  this.containsValue = function (value) {
    for (key in obj) {
      if (obj[key] == value) {
        return true;
      }
    }
    return false;
  };
  this.get = function (key) {
    return (this.containsKey(key)) ? obj[key] : null;
  };
  this.remove = function (key) {
    if (this.containsKey(key) && delete obj[key]) {
      length--;
    }
  };
  this.put = function (key, value) {
    if (!this.containsKey(key)) {
      length++;
    }
    obj[key] = value;
  };
  this.values = function () {
    var _values = new Array();
    for (key in obj) {
      _values.push(obj[key]);
    }
    return _values;
  };
  this.keySet = function () {
    var ks = new Array();
    for (key in obj) {
      ks.push(key);
    }
    return ks;
  };
  this.size = function () {
    return this.length;
  };
  this.clear = function () {
    this.length = 0;
    this.obj = new Object();
  };
  this.toJSON = function () {
    return JSON.stringify(obj,null,2);
  }
};

使用方法如下:

var map = new HashMap();
      map.put(“key”, 1);
      map.remove("key");

时间: 2024-07-28 13:01:56

javascript版的HashMap的相关文章

【数据结构的JavaScript版实现】data-struct-js的npm包初版作成

[数据结构的JavaScript版实现]data-struct-js的npm包初版作成 码路工人 CoderMonkey [数据结构的JavaScript版实现] 拖了这么久,终于趁着春节假期把初版(即计划的内容)完成了. [npm](https://www.npmjs.com/) 上搜 data-struct-js 这个 npm 包主要侧重数据结构, 构建了基本数据结构的概念, 实现了常用的几个方法, 比如图(有向图/无向图), 仅有实现广度优先遍历和深度优先遍历, 而其它的更多偏向于算法方面

【JavaScript】【算法】JavaScript版排序算法

JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) 1 //排序算法 2 window.onload = function(){ 3 var array = [0,1,2,44,4, 4 324,5,65,6,6, 5 34,4,5,6,2, 6 43,5,6,62,43, 7 5,1,4,51,56, 8 76,7,7,2,1, 9 45,4,6,7,8]; 10 //var array = [4,2,5,1,0,3]; 11 array

javascript日历控件——纯javascript版

平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. <!doctype html> <html> <head> <meta charset="utf-8"> <title>日历控件</title> <script src="js/calendar.js&quo

JavaScript版MD5应用

如果使用Java为一个字符串进行MD5操作,我想轻而易举:可是如果要在客户端为网页中字符串进行MD5操作又该怎么做呢? 代码1--为字符串等进行MD5操作的js文件(md5.js): /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johns

Javascript版选择下拉菜单互移且排序

效果图如下: 代码如下: <html> <head> <title>Javascript版选择下拉菜单互移且排序</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <p>选定一项或多项然后点击添加或移除(按住shift或ctrl可以多选),

关于时间的操作(JavaScript版)——页面显示格式:年月日 上午下午 时分秒 星期

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

javascript版万年历

1 <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 transitional//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

关于时间的操作(JavaScript版)——年月日三级联动(默认显示系统时间)

这个功能是大学时自己使用纯JavaScript写的,没有借助Jquery,呵呵呵,看起来有点繁琐,可是在当时依稀的记得功能实现后自己好好的高兴一把了呢,从现在来看那时候的自己是多么的幼稚.多么的无知: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>年月日三级联动(默认显示系统时间)</title> <

关于时间的操作(JavaScript版)——年月日三级级联(默认依次显示请选择年、请选择月和请选择日)

这篇博客和前一篇博客基本相同,只是显示的默认值不同: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>年月日三级级联(默认依次显示请选择年.请选择月和请选择日)</title> <meta http-equiv="content-type" content="text/ht