var Class = {
create : function() {
return function() {
this.initialize.apply(this, arguments);
};
}
};
var Extend = function(desc, src) {
for (var property in src) {
desc[property] = src[property];
}
return desc;
};
var Base = function(){};
Base.prototype.extend = function(obj) {
return Extend.apply(this, [this, obj]);
};
var Map = Class.create();
Map.prototype = (new Base()).extend({
initialize : function() {
this.length = 0;
this.maxLength = Number.MAX_VALUE;
this.container = {};
},
put : function (objName,objValue){
try{
if(this.length >= this.maxLength)
throw new Error("[Error HashMap] : Map Datas' count overflow !");
if(objValue && objName && objName != ""){
this.container[objName] = objValue;
this.length ++ ;
}
}catch(e){
return e;
}
},
get : function(objName){
try{
if(this.container[objName])
return this.container[objName];
}catch(e){
return e;
}
},
size : function(){
return this.length;
},
remove : function(objName){
try{
if(this.container[objName]){
delete this.container[objName];
this.length -- ;
}
}catch(e){
return e;
}
}
});
var HashMap = Class.create();
HashMap.prototype = (new Map()).extend({
constructor:HashMap,
keySet : function(){
var arrKeySet = new Array();
var index = 0;
for(var strKey in this.container){
arrKeySet[index++] = strKey;
}
return arrKeySet.length == 0 ? null : arrKeySet;
},
pop : function(objName){
try{
var ov = this.container[objName];
if(ov){
delete this.container[objName];
this.length -- ;
return ov;
}
return null;
}catch(e){
return e;
}
},
isEmpty : function(){
if(this.length === 0)
return true;
else
return false;
},
runIn : function(fun){
try{
if(!fun)
throw new Error("[Error HashMap] : The paramer is null !");
for(var p in this.container){
var ov = this.container[p];
fun(ov);
}
}catch(e){
return e;
}
},
values : function() {
var arrValues = new Array();
var index = 0;
for(var strKey in this.container){
arrValues[index++] = this.container[strKey];
}
return arrValues.length == 0 ? null : arrValues;
},
contains : function(objValue){
try{
for(var p in this.container){
if(this.container[p] === objValue)
return true;
}
return false;
}catch(e){
return e;
}
},
removeAll : function(){
this.clear();
},
clear : function(){
try{
delete this.container;
this.container = {};
this.length = 0;
}catch(e){
return e;
}
},
putAll : function(map){
if(map == null)
return;
if(map.constructor != HashMap)
return;
var arrKey = map.keySet();
var arrValue = map.values();
for(var i in arrKey)
this.put(arrKey[i],arrValue[i]);
}
});
分享到:
相关推荐
在JavaScript中,HashMap是一种常用的键值对存储结构,它提供了快速的插入、删除和查找操作。...通过阅读和理解HashMap.js文件中的源码,开发者可以更好地掌握JavaScript的底层原理,并在实际项目中灵活应用。
在描述中提到的"js版java HashMap"可能是指一个JavaScript实现的HashMap类,它模仿了Java中的HashMap数据结构,提供了更高效和灵活的操作。Java的HashMap是一个基于哈希表的Map接口实现,提供快速的插入、删除和查找...
用js代码实现java中hashmap 的所有功能
下面我们将详细讨论如何在JavaScript中创建一个基于js的HashMap以及它的相关知识点。 首先,HashMap的核心在于其内部实现的哈希函数,它能将键转换为唯一的哈希码,使得我们可以快速定位到存储的值。在JavaScript中...
模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用
在JavaScript中,HashMap是一种数据结构,它存储键值对,并且通过键来快速查找值。虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能...
本文将探讨如何利用JavaScript和Java中的HashMap(在JavaScript中,我们可以使用类似的数据结构,如`Map`)来消除`<select>`中的重复值。 首先,让我们了解HashMap或Map数据结构。HashMap是Java中的一种集合类,它...
javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!
HashMap类在Java编程...在阅读《HashMap1.js》和《HashMap.js》这两个文件时,可以深入分析其JavaScript版本的HashMap实现,虽然与Java版本可能有所不同,但基本的哈希映射原理是相通的,有助于拓宽对哈希表的理解。
JavaScript中的HashMap是一种基于键值对的集合,它允许开发者存储和操作键值对数据结构。在JavaScript中,虽然ES6引入了Map对象,但在ES6之前,开发者通常需要手动实现HashMap功能。接下来,我们将详细介绍如何在...
backbee / js-hashmap JavaScript哈希图实现##安装:bower install bb-js-hashmap --save ##特性: HashMap . length 返回HashMap对象中键/值对的数量。 HashMap . size 返回HashMap对象中键/值对的数量。 ## ...
`HashMap`作为一种常见的数据结构,它在JavaScript中的应用广泛,特别是在处理大量数据时,可以提供比原生对象更快的查找、添加和删除操作。`HashMap`是基于键值对存储的数据结构,其核心特性是通过哈希函数快速定位...
JavaScript 中的 HashMap 实现。 就像在 Java 中一样,但不是。 用法 var capacity = 16 , loadFactor = 0.75 , // default value hashMap = new HashMap ( capacity , loadFactor ) ; hashMap . put ( "someKey...
适用于JavaScript的HashMap类 安装 使用 : $ npm install hashmap 使用凉亭: $ bower install hashmap 您可以从下载最新的稳定版本。 如果您喜欢冒险,可以下载,它通常是稳定的。 要运行测试: $ npm test ...
### HashMap中的Hash函数构造问题详解 #### 一、引言 在Java中,`HashMap`是一种非常常用的集合类,它提供了基于键值对的数据存储方式。`HashMap`内部使用哈希表来存储数据,其中最关键的部分就是哈希函数的设计。...
本篇文章将深入探讨JavaScript中的HashMap、Set和ArrayList等集合类的实现,并与Java中的相应概念进行对比,帮助开发者更好地理解和应用这些数据结构。 **1. HashMap** 在Java中,HashMap是一个散列映射容器,它...
标题所揭示的知识点是关于如何使用JavaScript实现一个自定义的HashMap类。HashMap是一种常见的数据结构,广泛用于存储键值对,它允许快速的查找和更新。在计算机编程中,使用类似于Java或JavaScript这样的语言实现...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括Java)的习惯,这使得JSON对于程序员来说易于读写。本教程将深入讲解如何在Java...
实现类似于Java中的HashMap功能,作为一个脚本中的Collection使用,可自行扩展功能。