`

js 实现java中hashMap

阅读更多
/**
 * 参考java中HashMap
 * 基本上实现Map接口
 * @author chitianxiang $Date: July 5, 2012 - Thursday - 11: 28 AM
 */
function HashMap(){
	this._table = {};
	this._size = 0;
		
	if (typeof HashMap._initialized == "undefined") {
		
		//返回 key-value 映射的数量
		HashMap.prototype.size = function() {
			return this._size;
		}
		
		//判断 map 是否为空
		HashMap.prototype.isEmpty = function() {
			return this._size > 0;
		}
		
		//是否包含 key
		HashMap.prototype.containsKey = function(key) {
			return (key in this._table);
		}
		
		//是否包含 value 
		HashMap.prototype.containsValue = function(value) {
			var flag = false;
			for (var key in this._table) {
				if (this._table[key] == value) {
					flag = true;
					break;
				}
			}
			return flag;
		}
		
		//取出key 对应的 value
		HashMap.prototype.get = function(key) {
			return (this.containsKey(key) ? this._table[key] : null);
		}
		
		//存入 key-value 映射
		HashMap.prototype.put = function(key, value) {
			if (!this.containsKey(key)) {
				this._size++;
			}
			this._table[key] = value;
		}
		
		//移除key 及其映射的 value
		HashMap.prototype.remove = function(key) {
			if (this.containsKey(key) && (delete this._table[key])) {
				this._size--;
			}
		}
		
		//将别的hashMap放入当前map中
		HashMap.prototype.putAll = function(hashMap) {
			try {
				if (hashMap.constructor.name == "HashMap") {
					for (var key in hashMap._table) {
						this.put(key, hashMap.get(key));
					}
				}
			} catch (e) {
				throw "HashMap.putAll(hashMap) errorCode< " + e + " >";	
			}
		}
		
		//清除Map
		HashMap.prototype.clear = function() {
			this._table = {};
			this._size = 0;
		}
		
		//返回所有 key 集合
		HashMap.prototype.keySet = function() {
			var keySet = [];
			for (var key in this._table) {
				keySet.push(key);
			}
			return keySet;
		}
		
		//返回所有 value 集合
		HashMap.prototype.values = function() {
			var values = [];
			for (var key in this._table) {
				values.push(this._table[key]);
			}
			return values;
		}
		
		HashMap._initialized = true;
	}
}
 

 

分享到:
评论

相关推荐

    js 版 java hashmap

    6. **迭代器**:为了方便遍历HashMap中的所有键值对,实现提供了一个迭代器接口,可以按照插入顺序或键的自然顺序遍历。 7. **键的类型支持**:JavaScript的HashMap实现可能需要支持各种类型的键,包括字符串、数字...

    js 实现HashMap功能

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

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

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

    HashMap.js

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

    Java直接运行JS代码

    在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本...开发者可以轻松地在Java程序中执行JavaScript代码,调用JavaScript函数,甚至传递Java对象到JavaScript环境,从而实现两者之间的协同工作。

    LZ77压缩,js&java版本

    LZ77在JavaScript和Java中的实现可以针对特定场景进行优化。例如,对于大文本的压缩,可以分块处理以减少内存占用。同时,考虑到JavaScript在浏览器环境中的限制,可能需要考虑内存管理和异步操作,以避免阻塞UI。在...

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

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

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

    这个方法适用于JavaScript环境,如果在服务器端使用Java处理,可以使用HashMap来实现相同的功能,只是代码会有所不同,因为Java处理DOM的操作不同于JavaScript。在Java中,你需要先解析HTML字符串,提取`&lt;select&gt;`...

    base64,java与JavaScript实现

    ### 关于Base64编码及Java与JavaScript的实现 #### Base64简介 Base64是一种将二进制数据转换为ASCII字符串表示形式的方法。它主要用于处理非文本数据的存储和传输,例如图像、视频等多媒体文件。由于互联网传输...

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

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

    javascript中实现兼容JAVA的hashCode算法代码分享

    从给定文件中,我们可以提取以下知识点: ...通过以上知识点的详细说明,我们可以更深入地理解如何在JavaScript中实现一个与Java中实现兼容的hashCode算法,并且理解这个算法在实际应用中的价值和潜在的性能优化考虑。

    HashMap类

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

    java 实现二维码批量打印

    在本文中,我们将深入探讨如何使用Java实现二维码批量打印,主要基于给定的标题"java 实现二维码批量打印"和描述中的技术环境。首先,我们要理解二维码(Quick Response Code)是一种二维条码,能存储大量数据,常...

    JsJava2.0最新Javascript类库下载

    5. **多线程支持**:虽然JavaScript在浏览器环境中通常是单线程的,但JsJava2.0可能通过Web Workers或类似的机制实现了多线程功能,以处理高计算密集型任务。 6. **文档生成工具**:附带的`doc`目录可能包含用于...

    Java1.8API中文手册

    Java 8引入了Nashorn JavaScript引擎,允许Java程序直接执行JavaScript代码,实现Java和JavaScript之间的互操作。 十、Type注解 Java 1.8允许在类型上使用注解,增强了编译时和运行时的类型检查,如@NonNull用于...

    Java实现Map集合二级联动示例

    在这个"Java实现Map集合二级联动示例中国省市例子"中,我们将探讨如何使用Map来构建一个二级联动的功能,常见于如中国省市选择的场景。这个场景通常出现在需要用户首先选择省份,然后根据所选省份展示对应的市的选择...

    javascript实现的HashMap类代码

    在计算机编程中,使用类似于Java或JavaScript这样的语言实现HashMap类可以帮助我们更好地管理数据和优化程序性能。 描述中提到的“添加、获取、删除、查询key和value功能”,指的是HashMap类应该具备的基本操作,...

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

    在HashMap中,值可以是另一个HashMap或List,这可以用来表示嵌套的JSON对象或数组。例如,如果我们有一个学生信息的HashMap,包含姓名、年龄和课程列表,可以这样构建: ```java HashMap, Object&gt; student = new ...

    JAVA中的集合和js中集合

    ### JAVA与JS中的集合概述 在现代编程语言中,集合框架是处理数据的重要工具之一,尤其是在面向对象的语言中,如Java。本文将详细介绍Java中的集合系统,并简要提及JavaScript中的集合概念,帮助读者理解这两种语言...

    java1.8api中文版

    8. ** Nashorn JavaScript引擎**:Java 8引入了一个新的脚本引擎Nashorn,允许在Java应用程序中直接运行JavaScript代码,实现了Java与JavaScript之间的交互。 9. **默认方法**:在接口中定义的默认方法允许不强制...

Global site tag (gtag.js) - Google Analytics