`
fackyou200
  • 浏览: 310755 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

JS实现类拟JAVA中MAP对像的功能

 
阅读更多
/*
name:    Map.js
author:  WindDC
date:    2006-10-27
content: 本程序用JS实现类拟JAVA中MAP对像的功能
*/
function Node(key,value){//键值对对象
this.key=key;
this.value=value;
}

function Map(){//Map类
this.nodes=new Array();
}

Map.prototype.put=function(key,value){//往容器中加入一个键值对
for(var i=0;i<this.nodes.length;i++)
if(this.nodes[i].key==key){//如果键值已存在,则put方法为更新已有数据
this.nodes[i].value=value;
return;
}
var node=new Node(key,value);
this.nodes.push(node);
return;
}//put
   
Map.prototype.get=function(key){//获取指定键的值
for(var i=0;i<this.nodes.length;i++)
if(this.nodes[i].key==key)
return this.nodes[i].value;
return null;
}//get

Map.prototype.size=function(){//获取容器中对象的个数
return this.nodes.length;
}//size
         
Map.prototype.clear=function(){//清空容器
while(this.nodes.length>0)
this.nodes.pop();      
}//clear

Map.prototype.remove=function(key){//删除指定值
for(var i=0;i<this.nodes.length;i++)
if(this.nodes[i].key==key){
	var newNodes= new Array() ;
	 if(i>0){   
	    newNodes = newNodes.concat(this.nodes.slice(0,i),this.nodes.slice(i+1));
	  }
	else//删除的是第一个元素
		{ 
		   newNodes=this.nodes.slice(1);
		}
		
	this.nodes=newNodes;

}
}//remove


Map.prototype.isEmpty=function(){//是否为空
if(this.nodes.length==0)
return true;
else
return false;
}//isEmpty

Map.prototype.toString=function(){
var str="[";
for(var i=0;i<this.nodes.length;i++){
if(i<this.nodes.length-1)
str=str+this.nodes[i].key+",";
else
str=str+this.nodes[i].key;    
}
str=str+"]";
return str;
}//toString

Map.prototype.toJson=function(){
	var sjson="[";
	for(var i=0;i<this.nodes.length;i++){
		if(i<this.nodes.length-1)
			sjson+="{\""+findObjKV(this.nodes[i].value)+"\"},";
		else
			sjson+="{\""+findObjKV(this.nodes[i].value)+"\"}";  
	}
	sjson+="]";
	return sjson;
}//toJson

Map.prototype.indexOf = function(i){
	return this.nodes[i];
}

//遍历对象key val
function findObjKV(source){
	var result=new Array();
	for(k in source){
		if(source.hasOwnProperty(k)){
			result.push("\""+k+"\":\""+source[k]+"\"");
		}
	}
	return result.join(",");
}

 使用:

var conditionMap = new Map();
conditionMap.put(k,v);

 

分享到:
评论

相关推荐

    js中的类似于java中的map工具对象Map.js

    js终于有了自己的Map了,类似与java的Map对象。此文件是源代码,亲测有类似于java的Map对象的类似方法:put(key,value)、get(key)、keys()、values()、size()、isEmpty()、remove(key)、clear()、element(index)、...

    js仿java的map对象

    在JavaScript中,尽管原生没有提供与Java完全相同的Map对象,但可以通过自定义对象或使用ES6提供的Map数据结构来实现类似的功能。本篇将详细探讨如何在JavaScript中模仿Java的Map对象,以及ES6 Map的数据结构和用法...

    javascript实现Java中的Map对象功能的实例详解

    在JavaScript中,没有内置的Map对象,但可以通过自定义对象的方式来模拟实现类似Java中的Map功能。这个自定义的Map对象可以存储键值对,并提供类似于Java Map接口的方法,如put、get、remove、clear、contains以及...

    JS自定义对象实现Java中Map对象功能的方法

    在本文中,将探讨如何使用JavaScript(简称JS)实现类似Java语言中Map对象的功能。Java中的Map是一个接口,它用于存储键值对(key-value pairs),并且提供了诸如添加、删除、修改和获取键值对等操作。虽然...

    Java直接运行JS代码

    在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本或者利用JavaScript库的功能。Java提供了这样的能力,让我们可以直接在Java程序中运行JS代码。这主要得益于Oracle公司在Java 6版本引入的一个...

    java对象List,Map转json格式

    本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...

    js中模仿java的map使用

    根据提供的文件信息,本文将详细解释如何在JavaScript中模拟Java中的`Map`功能,并实现一组基本的操作方法。这种做法有助于理解两种语言之间处理键值对数据结构的不同方式,并且能够帮助开发者利用JavaScript来构建...

    Java Map 遍历比较齐全的解析.docx

    在某些场景下,如果需要兼容JavaScript或者使用类似的方法,可能会使用`Object.keys(map).length`,但这是JavaScript中的写法,在Java中并不适用。 3. **Java 8及Lambda表达式遍历Map** 自Java 8开始,引入了...

    js中的json对象和字符串之间的转化

    JSON采用完全独立于语言的文本格式,但也使用了类似于C家族语言,包括C、C++、C#、Java、JavaScript、Perl、Python等。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。 **...

    js 版 java hashmap

    JavaScript中的HashMap并不是内置的数据结构,但在许多开发场景中,我们需要实现类似Java中HashMap的功能,用于存储键值对数据。在JavaScript中,我们通常使用对象(Object)来模拟HashMap的行为,因为对象的属性名...

    classMap的使用

    接下来,我们将详细探讨`classMap`的使用、它的功能以及如何在JavaScript中实现类似的数据结构。 首先,`classMap`可能是一个自定义的数据类型,用于模拟Java或C#中的映射(Map)概念,它允许我们将一个特定的键...

    JAVA中的集合和js中集合

    - **`Map`**:类似于Java中的`Map`,JavaScript的`Map`提供了键值对的存储方式,支持任意类型的键。 ### 总结 通过上述介绍,我们可以看出Java集合框架非常强大和完整,提供了丰富的接口、抽象类和具体类来满足...

    js操作map类UtilMap

    在JavaScript中,原生的`Map`对象虽然提供了丰富的功能,但其操作方式与Java中的`Map`有所不同,不那么直观。为了使习惯于Java开发的程序员在JS中也能便捷地操作映射数据结构,我们可以创建一个名为`UtilMap`的对象...

    java处理json对象

    JSON对象通常以键值对的形式存在,可以被表示为一个Java Map对象。要将Map转换为JSON字符串,可以使用`JsonConfig`和`JSONObject`类: ```java import net.sf.json.JSONObject; import net.sf.json.util.JsonConfig...

    java对象转json示例

    - JSON键必须是字符串,所以在Java对象中,对应的字段应为String类型。 - 如果对象有嵌套的对象或数组,需要递归处理或使用`JSONArray`。 总结,Java对象转JSON的过程主要包括创建Java对象,使用`JSONObject`将...

    像import java类一样 import js类

    在JavaScript的世界里,我们通常使用`require`(Node.js环境)或`import`(ES6及以后版本)来加载和使用其他脚本文件中的功能。这篇博文可能介绍了一种方法,使得JavaScript的模块导入更加结构化和类似Java。 描述...

    java对象与json对象的转换.pdf

    - 类似地,可以将Java中的`List`集合转换为JSONArray,其中集合中的元素可以是任意对象,如字符串、自定义JavaBean等。 - 直接传递JSON格式的字符串到`JSONArray.fromObject`也可以得到对应的JSONArray对象,如`[...

    Java对Json的一系列操作(构建、json与对象的转换)

    总结,Java对JSON的操作主要包括构建JSON对象、将JSON字符串转换为Java对象、将Java对象转换为JSON字符串,以及与Map对象的相互转换。开发者可以根据项目需求选择Gson、Jackson或其他库进行JSON处理。理解并熟练掌握...

    js模仿java的Map集合详解

    在JavaScript中,尽管原生没有提供与Java完全相同的Map集合,但可以通过自定义对象来模拟实现Map的功能。这里我们将详细探讨如何用JavaScript模仿Java的Map集合,并了解其基本操作。 首先,我们需要创建一个名为`...

    JsonPath使用类似XPATH的语法从JSON提取数据

    在Java开发中,处理JSON格式的数据是常见的任务,JsonPath提供了强大的功能来方便地解析和操作JSON。 JsonPath的语法主要包含以下组件: 1. **根节点**:`$` 表示JSON对象的根节点,类似于XPath中的`/`。 2. **...

Global site tag (gtag.js) - Google Analytics