`
cuisuqiang
  • 浏览: 3960740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3670465
社区版块
存档分类
最新评论

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

    博客分类:
  • JS
阅读更多

Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!

 

这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

使用很简单,我先把工具类给大家看下:

/**
 * @version 1.0
 * @author cuisuqiang@163.com
 * 用于实现页面 Map 对象,Key只能是String,对象随意
 */
var Map = function(){
	this._entrys = new Array();
	
    this.put = function(key, value){
        if (key == null || key == undefined) {
            return;
        }
        var index = this._getIndex(key);
        if (index == -1) {
            var entry = new Object();
            entry.key = key;
            entry.value = value;
            this._entrys[this._entrys.length] = entry;
        }else{
            this._entrys[index].value = value;
        }        
    };
    this.get = function(key){
        var index = this._getIndex(key);
        return (index != -1) ? this._entrys[index].value : null;
    };
    this.remove = function(key){
        var index = this._getIndex(key);
        if (index != -1) {
            this._entrys.splice(index, 1);
        }
    };
    this.clear = function(){
        this._entrys.length = 0;;
    };
    this.contains = function(key){
        var index = this._getIndex(key);
        return (index != -1) ? true : false;
    };
    this.getCount = function(){
        return this._entrys.length;
    };
    this.getEntrys =  function(){
        return this._entrys;
    };
   this._getIndex = function(key){
        if (key == null || key == undefined) {
            return -1;
        }
        var _length = this._entrys.length;
        for (var i = 0; i < _length; i++) {
            var entry = this._entrys[i];
            if (entry == null || entry == undefined) {
                continue;
            }
            if (entry.key === key) {//equal
                return i;
            }
        }
        return -1;
    };
}

 

如果你不懂Js中对象的创建等一些基础知识,自己可以网上查一下。

// 自定义Map对象
var map = new Map();
map.put("a","a");
alert(map.get("a"));
map.put("a","b");
alert(map.get("a"));

 

先弹出 a 后面弹出 b ,因为后面的会覆盖前面的!

其他方法大家自己写写看!

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

4
0
分享到:
评论
8 楼 BuN_Ny 2012-09-04  
BuN_Ny 写道
(function(){
  var Map = function(){
    this._data = {};
    //...
  };
  Map.prototype = {
    put: function(key, val){
      this._data[key] = val;
    },
    get: function(key){
      return this._data[key];
    }
  };
})();


直接写的,不知道能不能运行。



不好意思,漏了点东西。。。
(function(W){
  var Map = function(){
    this._data = {};
    //...
  };
  Map.prototype = {
    put: function(key, val){
      this._data[key] = val;
    },
    get: function(key){
      return this._data[key];
    }
  };
  W.Map = Map;
})(window);
7 楼 BuN_Ny 2012-09-04  
(function(){
  var Map = function(){
    this._data = {};
    //...
  };
  Map.prototype = {
    put: function(key, val){
      this._data[key] = val;
    },
    get: function(key){
      return this._data[key];
    }
  };
})();


直接写的,不知道能不能运行。
6 楼 cuisuqiang 2012-06-26  
zhukewen_java 写道
水平确实一般

谢谢批评,JS功底我确实不行
5 楼 zhukewen_java 2012-06-26  
水平确实一般
4 楼 cuisuqiang 2012-06-26  
DDT_123456 写道
 this._getIndex = function(key){  
        if (key == null || key == undefined) {  
            return -1;  
        }  
        var _length = this._entrys.length;  
        for (var i = 0; i < _length; i++) {  
            var entry = this._entrys[i];  
            if (entry == null || entry == undefined) {  
                continue;  
            }  
            if (entry.key === key) {//equal  
                return i;  
            }  
        }  
        return -1;  
    };

你这又是何必呢。
JS对象{}本来就是K-V的你何必用数组呢?不过 JS对象里的关键字你倒是要考虑一下咯。

多谢指点
3 楼 zyhui98 2012-06-25  
用两个数组,一个保存key,一个保存value,两个下标相同,这样效率高点吧。
2 楼 DDT_123456 2012-06-18  
同学把文章改改吧,不要误导新同学咯。
1 楼 DDT_123456 2012-06-18  
 this._getIndex = function(key){  
        if (key == null || key == undefined) {  
            return -1;  
        }  
        var _length = this._entrys.length;  
        for (var i = 0; i < _length; i++) {  
            var entry = this._entrys[i];  
            if (entry == null || entry == undefined) {  
                continue;  
            }  
            if (entry.key === key) {//equal  
                return i;  
            }  
        }  
        return -1;  
    };

你这又是何必呢。
JS对象{}本来就是K-V的你何必用数组呢?不过 JS对象里的关键字你倒是要考虑一下咯。

相关推荐

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

    本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一...

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

    javascript 自定义对象实现Java中的Map对象功能 Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据...

    js仿java的map对象

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

    java对象List,Map转json格式

    1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以广泛使用的Jackson库为例,它提供了方便的API用于处理JSON操作。 2. **Jackson库**: Jackson库包含...

    自定义javascript的Map类

    自定义javascript的Map类,使用习惯完全依据于java的map使用习惯编写,java中map的用法基本一样,导入包即可使用

    map(java).rar_ map ja_MAP JAVA_java map_java系统_map

    标题中的"map(java).rar_ map ja_MAP JAVA_java map_java系统_map"暗示了这是一个与Java编程语言相关的项目,特别是涉及到地图(Map)的实现。在Java中,`Map`是一个接口,它定义了键值对的数据结构,允许我们通过键...

    不用第三方jar的json与object(map、list)互换java类

    在`jsonobject.java`文件中,我们可能看到一个自定义的`JSONObject`类,它可能包含了一些自定义的属性和方法来帮助实现JSON与Java对象的转换。这个类可能会包含以下关键部分: - **属性**:可能包括一个内部的`Map`...

    自定义方法实现msp和json互转(底层实现原理,绝对值)

    本文将深入探讨如何通过自定义方法实现JSON与Map之间的互转,以及在实现过程中涉及的底层原理,特别是使用反射和递归的方法。 首先,我们要理解JSON和Map的基本概念。JSON是一种轻量级的数据交换格式,它允许我们以...

    对象转换成JSON和Map

    "对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...

    Javacript中自定义的map.js 的方法

    在这个自定义的Map中,有几个关键的方法被实现: 1. 构造函数:它初始化一个数组`arr`用于存储键值对。 2. put方法:用于向Map中添加键值对。如果键已存在,它会更新该键对应的值;如果键不存在,它会在数组的末尾...

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; &lt;artifactId&gt;json-lib...

    jsp,java实现谷歌地图,查询地图功能

    综上所述,"jsp,java实现谷歌地图,查询地图功能"项目涵盖了JSP基础、Servlet交互、Google Maps API集成、地图查询功能实现等多个关键知识点。通过学习和实践这些内容,开发者可以构建出功能丰富的地图应用,提供...

    ajax和json跟java实现List、Map直接传递

    在Web开发中,Ajax(Asynchronous JavaScript and XML)和JSON(JavaScript Object Notation)是两种常用的技术,用于实现页面的异步数据交互和数据传输。Java作为后端服务器语言,常与它们配合处理数据,尤其是当...

    对Map的key和value进行排序

    对Map中的key进行排序可以使用TreeMap来实现。TreeMap是一个有序的Map,它可以根据key的自然顺序或自定义的比较器来排序。在下面的示例代码中,我们使用TreeMap来对字符串形式的key进行自然逆序排序。 ```java Map,...

    json与java对象互转

    本文将深入探讨如何在Java中实现JSON与Java对象之间的相互转换,以及这一过程中的高级定制技巧。 #### JSON与Java对象互转的重要性 JSON与Java对象互转是后端开发中常见的需求,尤其是在Web应用和移动应用的数据...

    classMap的使用

    在JavaScript中,我们通常使用对象(Object)来实现键值对存储,但`classMap`可能提供了一些额外的功能,如类型检查、便利的方法等,以适应特定的开发需求。 在示例中,`createMap`函数初始化了一个`StringMap`实例...

    java对象转json示例

    在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将对象转换为字符串以便在网络间传输。本示例主要讲解如何在Java中将一个对象转换成JSON格式,无需依赖额外的jar包,适用于...

    JAVA-JSON工具转换类

    它提供了许多功能,例如将Java对象转化为JSON字符串,或者将JSON文本解析为Java对象。这对于数据的序列化和反序列化非常有用,使得在服务器端和客户端之间传递复杂的数据结构变得更加便捷。 `ezmorph`库则主要用于...

Global site tag (gtag.js) - Google Analytics