`
阅读更多
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实现

    在JavaScript中,HashMap是一种常用的键值对存储结构,它提供了快速的插入、删除和查找操作。...通过阅读和理解HashMap.js文件中的源码,开发者可以更好地掌握JavaScript的底层原理,并在实际项目中灵活应用。

    js 版 java hashmap

    在描述中提到的"js版java HashMap"可能是指一个JavaScript实现的HashMap类,它模仿了Java中的HashMap数据结构,提供了更高效和灵活的操作。Java的HashMap是一个基于哈希表的Map接口实现,提供快速的插入、删除和查找...

    js 实现HashMap功能

    用js代码实现java中hashmap 的所有功能

    一个基于js的HashMap

    下面我们将详细讨论如何在JavaScript中创建一个基于js的HashMap以及它的相关知识点。 首先,HashMap的核心在于其内部实现的哈希函数,它能将键转换为唯一的哈希码,使得我们可以快速定位到存储的值。在JavaScript中...

    HashMap.js

    模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用

    Javascript实现和操作HashMap

    在JavaScript中,HashMap是一种数据结构,它存储键值对,并且通过键来快速查找值。虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能...

    html js 用HashMap去掉html中select中的重复值

    本文将探讨如何利用JavaScript和Java中的HashMap(在JavaScript中,我们可以使用类似的数据结构,如`Map`)来消除`<select>`中的重复值。 首先,让我们了解HashMap或Map数据结构。HashMap是Java中的一种集合类,它...

    javaScript模拟的HashMap数据结构的对象

    javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!

    HashMap类

    HashMap类在Java编程...在阅读《HashMap1.js》和《HashMap.js》这两个文件时,可以深入分析其JavaScript版本的HashMap实现,虽然与Java版本可能有所不同,但基本的哈希映射原理是相通的,有助于拓宽对哈希表的理解。

    JS hashMap实例详解

    JavaScript中的HashMap是一种基于键值对的集合,它允许开发者存储和操作键值对数据结构。在JavaScript中,虽然ES6引入了Map对象,但在ES6之前,开发者通常需要手动实现HashMap功能。接下来,我们将详细介绍如何在...

    js-hashmap:javascript hasmap实现

    backbee / js-hashmap JavaScript哈希图实现##安装:bower install bb-js-hashmap --save ##特性: HashMap . length 返回HashMap对象中键/值对的数量。 HashMap . size 返回HashMap对象中键/值对的数量。 ## ...

    前端开源库-hashmap

    `HashMap`作为一种常见的数据结构,它在JavaScript中的应用广泛,特别是在处理大量数据时,可以提供比原生对象更快的查找、添加和删除操作。`HashMap`是基于键值对存储的数据结构,其核心特性是通过哈希函数快速定位...

    HashMap:JS 上的 HashMap

    JavaScript 中的 HashMap 实现。 就像在 Java 中一样,但不是。 用法 var capacity = 16 , loadFactor = 0.75 , // default value hashMap = new HashMap ( capacity , loadFactor ) ; hashMap . put ( "someKey...

    hashmap:HashMap JavaScript类,用于Node.js和浏览器。 键可以是任何东西,不会被字符串化

    适用于JavaScript的HashMap类 安装 使用 : $ npm install hashmap 使用凉亭: $ bower install hashmap 您可以从下载最新的稳定版本。 如果您喜欢冒险,可以下载,它通常是稳定的。 要运行测试: $ npm test ...

    hashmap中hash函数的构造问题

    ### HashMap中的Hash函数构造问题详解 #### 一、引言 在Java中,`HashMap`是一种非常常用的集合类,它提供了基于键值对的数据存储方式。`HashMap`内部使用哈希表来存储数据,其中最关键的部分就是哈希函数的设计。...

    js 集合类实现 (HashMap, Set, ArrayList, etc.)

    本篇文章将深入探讨JavaScript中的HashMap、Set和ArrayList等集合类的实现,并与Java中的相应概念进行对比,帮助开发者更好地理解和应用这些数据结构。 **1. HashMap** 在Java中,HashMap是一个散列映射容器,它...

    javascript实现的HashMap类代码

    标题所揭示的知识点是关于如何使用JavaScript实现一个自定义的HashMap类。HashMap是一种常见的数据结构,广泛用于存储键值对,它允许快速的查找和更新。在计算机编程中,使用类似于Java或JavaScript这样的语言实现...

    JSON入门Java篇-4-用HashMap来构建JSON.rar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括Java)的习惯,这使得JSON对于程序员来说易于读写。本教程将深入讲解如何在Java...

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

    实现类似于Java中的HashMap功能,作为一个脚本中的Collection使用,可自行扩展功能。

Global site tag (gtag.js) - Google Analytics