首页 > 编程语言 > 详细

js创建javaMap

时间:2015-09-09 17:26:37      阅读:300      评论:0      收藏:0      [点我收藏+]
(function(){
    var _common = {
        Map :function () {
            Array.prototype.remove = function(val) {
                var index = this.indexOf(val);
                if (index > -1) {
                    this.splice(index, 1);
                }
            };
            this.keys = new Array(); /** 存放键的数组(遍历用到) */     
            this.data = new Object();/** 存放数据 */    
            /**   
             * 放入一个键值对   
             * @param {String} key   
             * @param {Object} value   
             */    
            this.put = function(key, value) {     
                if(this.data[key] == null){     
                    this.keys.push(key);
                }
                this.data[key] = value;
            };     
            /**   
             * 获取某键对应的值   
             * @param {String} key   
             * @return {Object} value   
             */    
            this.get = function(key) {
                return this.data[key];
            };
            /**   
             * 删除一个键值对   
             * @param {String} key   
             */    
            this.remove = function(k) {
                this.keys.remove(k);
                //delete this.keys[k];
                this.data[k] = null;     
            };
            /**   
             * 遍历Map,执行处理函数   
             *    
             * @param {Function} 回调函数 function(key,value,index){..}   
             */    
            this.each = function(fn){     
                if(typeof fn != ‘function‘){     
                    return;     
                }     
                var len = this.keys.length;     
                for(var i=0;i<len;i++){     
                    var k = this.keys[i];     
                    fn(k,this.data[k],i);     
                }     
            };     
            /**   
             * 获取键值数组(类似Java的entrySet())   
             * @return 键值对象{key,value}的数组   
             */    
            this.entrys = function() {     
                var len = this.keys.length;     
                var entrys = new Array(len);     
                for (var i = 0; i < len; i++) {     
                    entrys[i] = {     
                        key : this.keys[i],     
                        value : this.data[i]     
                    };     
                }     
                return entrys;     
            };     
            /**   
             * 判断Map是否为空   
             */    
            this.isEmpty = function() {     
                return this.keys.length == 0;     
            };     
            /**   
             * 获取键值对数量   
             */    
            this.size = function(){     
                return this.keys.length;     
            };     
            /**   
             * 重写toString    
             */    
            this.toString = function(){     
                var s = "{";     
                for(var i=0;i<this.keys.length;i++,s+=‘,‘){
                    var k = this.keys[i];     
                    s += k+"="+this.data[k];     
                }     
                s+="}";     
                return s;     
            };
            /**   
             * 重写toString    
             */    
            this.toMapString = function(){
                var s = "java.util.Map map = new java.util.HashMap();";     
                for(var i=0;i<this.keys.length;i++){
                    var k = this.keys[i];
                    if(i != 0)    s +=";";
                    
                    s += "map.put(\""+k+"\",\""+this.data[k]+"\")";
                }     
                s+="; return map;";     
                return s;     
            };
        }
    
    };
    
    if(typeof JBPM == "undefined") window.JBPM={};
    JBPM.common = _common;
})();


/**
* Simple Map
* var m = new Map();
* m.put(‘key‘,‘value‘);
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"/n";
* });
* alert(s);
*/

 

 

js创建javaMap

原文:http://www.cnblogs.com/yy123/p/4795171.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!