<script language="javascript">
/**
*作者 :Fantasy
*Email: fantasycs@163.com
*QQ : 8635335
*Blog : http://www.blogjava.net/fantasy
*版本 :V1.1
*/
function HashMap()
{
/** Map 大小 **/
var size = 0;
/** 对象 **/
var entry = new Object();
/** 存 **/
this.put = function (key , value)
{
if(!this.containsKey(key))
{
size ++ ;
}
entry[key] = value;
}
/** 取 **/
this.get = function (key)
{
return this.containsKey(key) ? entry[key] : null;
}
/** 删除 **/
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;
}
/* 清空 */
this.clear = function ()
{
size = 0;
entry = new Object();
}
}
var map = new HashMap();
/*
map.put("A","1");
map.put("B","2");
map.put("A","5");
map.put("C","3");
map.put("A","4");
*/
/*
alert(map.containsKey("XX"));
alert(map.size());
alert(map.get("A"));
alert(map.get("XX"));
map.remove("A");
alert(map.size());
alert(map.get("A"));
*/
/** 同时也可以把对象作为 Key **/
/*
var arrayKey = new Array("1","2","3","4");
var arrayValue = new Array("A","B","C","D");
map.put(arrayKey,arrayValue);
var value = map.get(arrayKey);
for(var i = 0 ; i < value.length ; i++)
{
//alert(value[i]);
}
*/
/** 把对象做为Key时 ,自动调用了该对象的 toString() 方法 其实最终还是以String对象为Key**/
/** 如果是自定义对象 那自己得重写 toString() 方法 否则 . 就是下面的结果 **/
function MyObject(name)
{
this.name = name;
}
/**
function MyObject(name)
{
this.name = name;
this.toString = function ()
{
return this.name;
}
}
**/
var object1 = new MyObject("小张");
var object2 = new MyObject("小名");
map.put(object1,"小张");
map.put(object2,"小名");
alert(map.get(object1));
alert(map.get(object2));
map.remove("xxxxx");
alert(map.size());
/** 运行结果 小名 小名 size = 1 **/
/** 如果改成复写toString()方法的对象 , 效果就完全不一样了 **/
</script>
分享到:
相关推荐
javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!
length 返回HashMap对象中键/值对的数量。 HashMap . size 返回HashMap对象中键/值对的数量。 ## Methods ### HashMap访问器方法 HashMap . prototype . set ( key , value ) 设置HashMap对象中键的值。 返回...
JavaScript中的Object是一组数据的key-value的集合, 有点类似于Java中的HashMap, 所有这些数据都是Object里的property. 通常情况下, JavaScript中建立一个对象用"new"加上constructor function来实现. 如new Date(),...
韩顺平培训学员面试资料+文档大全(涵盖...上面例子中的name和page就是名为book的对象中的property. 我们可以用delete来删除Object中的property: "delete book.name;". 除了Object, Date等buildin的对象外, 我们可以
模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用
JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#、Java中“数组、List、HashMap/Dictionary”等的超强综合体。 Array数组 使用方式: 例1: var citys = new Array(); //创建数组对象,无需...
适用于JavaScript的HashMap类 安装 使用 : $ npm install hashmap 使用凉亭: $ bower install hashmap 您可以从下载最新的稳定版本。 如果您喜欢冒险,可以下载,它通常是稳定的。 要运行测试: $ npm test ...
javascript中本没有命名空间的概念,但是要体现面向对象的思想, 应当有命名空间,就像java中的package,.net中的namespace一样, 作用主要为了防止类名冲突,相同的类名只要属于不同的命名空间,便不会冲突。...
JavaScript中的Object是一组数据的key-value的集合, 有点类似于Java中的HashMap, 所有这些数据都是Object里的property. 通常情况下, JavaScript中建立一个对象用”new”加上constructor function来实现. 如new Date...
Hash Map通常在JavaScript中作为一个简单的来存储键值对的地方。然而,Object并不是一个真正的哈希映射,如果使用不当可能会带来潜在的问题。而且JavaScript可能不提供本地哈希映射(至少不是跨浏览器兼容的),有一...
用于构造/解构 URL 哈希映射的 JavaScript 助手。 例子 从对象构造哈希图 var myObj = { key: 'value', key2: 'value2' }; HashMap.buildHash(myObj); 输出:“#key=value&key2=value2” 从表单元素构建哈希图 ...
Javascript数据结构,用于存储原始和复杂的Javascript对象。 每个库文件都是数据结构的实现。 浏览器和Node.js支持 它支持以下浏览器: Chrome19+ Firefox 4+ Safari 5+ IE9 + 这些Node.js版本也可以使用: ...
目录流水线懒惰评估特质运算符作为功能键入实用程序功能实用程序变更记录1.8.0 1.7.0 1.6.0 1.5.0 1.4.0 1.3.0 1.2.0 发展建造测试皮棉 地位 用法与功能$ npm add ferrum 哈希表Ferrum具有用于对象哈希的可扩展,...
//这样就创建成功了命名空间:java.util //我们可以在java.util下面加类(函数),属性,或对象 java.util.HashMap = function() { this.ShowMessage = function() { alert(“java.util.HashMap”); } } var ...
哈希表有时您需要在内存中存储大量数据,以至于V8可能会被阻塞。... 如果这是一个问题,请使用0.xx 您可能首先想做的所有事情都需要一个新的HashMap对象(该对象对应于本机c ++ unordered_map): var HashTable =
####代替一个大字符串值: ####你可以得到这个简单的键值结构: 它可以使用 javascript 对象(hashmap)作为存储或 localStorage 作为持久存储, 在环境中工作: 节点在浏览器中为了在浏览器中使用 Config 在 html ...
输出在./data/output.txt实施细节语NodeJS,lodash库,bluebird库保证算法从提供的文件中读取Json对象,并创建一个Hashmap,该映射将制造商映射到该制造商的产品列表。 对于每个列表,我的算法都使用哈希图从列表的...
116、JavaScript中的对象. 25 117、function的用法 26 118、对象的继承 27 119、this的用法 29 120、Array in JavaScript 29 121、jsp有哪些内置对象?作用分别是什么? 31 122、jsp有哪些动作?作用分别是什么? 31 123...
JavaScript中使用ajax技术访问后台资源的时候,常常使用json作为轻量级数据传输格式。json类似于Java中的HashMap,是由一系列的key-value键值对构成。 如果后台返回给前台的json中key的值是动态生成的,那么我们没有...
116、JavaScript中的对象. 25 117、function的用法 26 118、对象的继承 27 119、this的用法 29 120、Array in JavaScript 29 121、jsp有哪些内置对象?作用分别是什么? 31 122、jsp有哪些动作?作用分别是什么? 31 123...