/**
* 参考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;
}
}
分享到:
相关推荐
6. **迭代器**:为了方便遍历HashMap中的所有键值对,实现提供了一个迭代器接口,可以按照插入顺序或键的自然顺序遍历。 7. **键的类型支持**:JavaScript的HashMap实现可能需要支持各种类型的键,包括字符串、数字...
用js代码实现java中hashmap 的所有功能
实现类似于Java中的HashMap功能,作为一个脚本中的Collection使用,可自行扩展功能。
模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用
在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本...开发者可以轻松地在Java程序中执行JavaScript代码,调用JavaScript函数,甚至传递Java对象到JavaScript环境,从而实现两者之间的协同工作。
LZ77在JavaScript和Java中的实现可以针对特定场景进行优化。例如,对于大文本的压缩,可以分块处理以减少内存占用。同时,考虑到JavaScript在浏览器环境中的限制,可能需要考虑内存管理和异步操作,以避免阻塞UI。在...
javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!
这个方法适用于JavaScript环境,如果在服务器端使用Java处理,可以使用HashMap来实现相同的功能,只是代码会有所不同,因为Java处理DOM的操作不同于JavaScript。在Java中,你需要先解析HTML字符串,提取`<select>`...
### 关于Base64编码及Java与JavaScript的实现 #### Base64简介 Base64是一种将二进制数据转换为ASCII字符串表示形式的方法。它主要用于处理非文本数据的存储和传输,例如图像、视频等多媒体文件。由于互联网传输...
本篇文章将深入探讨JavaScript中的HashMap、Set和ArrayList等集合类的实现,并与Java中的相应概念进行对比,帮助开发者更好地理解和应用这些数据结构。 **1. HashMap** 在Java中,HashMap是一个散列映射容器,它...
从给定文件中,我们可以提取以下知识点: ...通过以上知识点的详细说明,我们可以更深入地理解如何在JavaScript中实现一个与Java中实现兼容的hashCode算法,并且理解这个算法在实际应用中的价值和潜在的性能优化考虑。
HashMap类在Java编程...在阅读《HashMap1.js》和《HashMap.js》这两个文件时,可以深入分析其JavaScript版本的HashMap实现,虽然与Java版本可能有所不同,但基本的哈希映射原理是相通的,有助于拓宽对哈希表的理解。
在本文中,我们将深入探讨如何使用Java实现二维码批量打印,主要基于给定的标题"java 实现二维码批量打印"和描述中的技术环境。首先,我们要理解二维码(Quick Response Code)是一种二维条码,能存储大量数据,常...
5. **多线程支持**:虽然JavaScript在浏览器环境中通常是单线程的,但JsJava2.0可能通过Web Workers或类似的机制实现了多线程功能,以处理高计算密集型任务。 6. **文档生成工具**:附带的`doc`目录可能包含用于...
Java 8引入了Nashorn JavaScript引擎,允许Java程序直接执行JavaScript代码,实现Java和JavaScript之间的互操作。 十、Type注解 Java 1.8允许在类型上使用注解,增强了编译时和运行时的类型检查,如@NonNull用于...
在这个"Java实现Map集合二级联动示例中国省市例子"中,我们将探讨如何使用Map来构建一个二级联动的功能,常见于如中国省市选择的场景。这个场景通常出现在需要用户首先选择省份,然后根据所选省份展示对应的市的选择...
在计算机编程中,使用类似于Java或JavaScript这样的语言实现HashMap类可以帮助我们更好地管理数据和优化程序性能。 描述中提到的“添加、获取、删除、查询key和value功能”,指的是HashMap类应该具备的基本操作,...
在HashMap中,值可以是另一个HashMap或List,这可以用来表示嵌套的JSON对象或数组。例如,如果我们有一个学生信息的HashMap,包含姓名、年龄和课程列表,可以这样构建: ```java HashMap, Object> student = new ...
### JAVA与JS中的集合概述 在现代编程语言中,集合框架是处理数据的重要工具之一,尤其是在面向对象的语言中,如Java。本文将详细介绍Java中的集合系统,并简要提及JavaScript中的集合概念,帮助读者理解这两种语言...
8. ** Nashorn JavaScript引擎**:Java 8引入了一个新的脚本引擎Nashorn,允许在Java应用程序中直接运行JavaScript代码,实现了Java与JavaScript之间的交互。 9. **默认方法**:在接口中定义的默认方法允许不强制...