中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JavaScript 模仿Java的Map集合,實(shí)現(xiàn)功能

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

java.util 中的集合類(lèi)包含 Java 中某些最常用的類(lèi)。最常用的集合類(lèi)是 List 和 Map。List 的具體實(shí)現(xiàn)包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲(chǔ)和操作任何類(lèi)型對(duì)象元素列表。List 適用于按數(shù)值索引訪問(wèn)元素的情形。

Map 提供了一個(gè)更通用的元素存儲(chǔ)方法。Map 集合類(lèi)用于存儲(chǔ)元素對(duì)(稱(chēng)作“鍵”和“值”),其中每個(gè)鍵映射到一個(gè)值。從概念上而言,您可以將 List 看作是具有數(shù)值鍵的 Map。而實(shí)際上,除了 List 和 Map 都在定義 java.util 中外,兩者并沒(méi)有直接的聯(lián)系。本文將著重介紹核心 Java 發(fā)行套件中附帶的 Map,同時(shí)還將介紹如何采用或?qū)崿F(xiàn)更適用于您應(yīng)用程序特定數(shù)據(jù)的專(zhuān)用 Map。

了解完java中的Map后,直接上代碼了!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />  
    <title>測(cè)試map</title>  
    </head>  
    <style type="text/css">  
    </style>  
    <script type="text/javascript">  
    /*  
     * Map對(duì)象,實(shí)現(xiàn)Map功能  
     * size() 獲取Map元素個(gè)數(shù)  
     * isEmpty() 判斷Map是否為空  
     * clear() 刪除Map所有元素  
     * put(key, value) 向Map中增加元素(key, value)   
     * remove(key) 刪除指定key的元素,成功返回true,失敗返回false  
     * get(key) 獲取指定key的元素值value,失敗返回null  
     * element(index) 獲取指定索引的元素(使用element.key,element.value獲取key和value),失敗返回null  
     * containsKey(key) 判斷Map中是否含有指定key的元素  
     * containsValue(value) 判斷Map中是否含有指定value的元素  
     * keys() 獲取Map中所有key的數(shù)組(array)  
     * values() 獲取Map中所有value的數(shù)組(array)  
     *  
     */  
    function Map(){  
        this.elements = new Array();  
       
        //獲取Map元素個(gè)數(shù)  
        this.size = function() {  
            return this.elements.length;  
        },  
       
        //判斷Map是否為空  
        this.isEmpty = function() {  
            return (this.elements.length < 1);  
        },  
       
        //刪除Map所有元素  
        this.clear = function() {  
            this.elements = new Array();  
        },  
       
        //向Map中增加元素(key, value)   
        this.put = function(_key, _value) {  
            if (this.containsKey(_key) == true) {  
                if(this.containsValue(_value)){  
                    if(this.remove(_key) == true){  
                        this.elements.push( {  
                            key : _key,  
                            value : _value  
                        });  
                    }  
                }else{  
                    this.elements.push( {  
                        key : _key,  
                        value : _value  
                    });  
                }  
            } else {  
                this.elements.push( {  
                    key : _key,  
                    value : _value  
                });  
            }  
        },  
       
        //刪除指定key的元素,成功返回true,失敗返回false  
        this.remove = function(_key) {  
            var bln = false;  
            try {    
                for (i = 0; i < this.elements.length; i++) {    
                    if (this.elements[i].key == _key){  
                        this.elements.splice(i, 1);  
                        return true;  
                    }  
                }  
            }catch(e){  
                bln = false;    
            }  
            return bln;  
        },  
       
        //獲取指定key的元素值value,失敗返回null  
        this.get = function(_key) {  
            try{    
                for (i = 0; i < this.elements.length; i++) {  
                    if (this.elements[i].key == _key) {  
                        return this.elements[i].value;  
                    }  
                }  
            }catch(e) {  
                return null;    
            }  
        },  
       
        //獲取指定索引的元素(使用element.key,element.value獲取key和value),失敗返回null  
        this.element = function(_index) {  
            if (_index < 0 || _index >= this.elements.length){  
                return null;  
            }  
            return this.elements[_index];  
        },  
       
        //判斷Map中是否含有指定key的元素  
        this.containsKey = function(_key) {  
            var bln = false;  
            try {  
                for (i = 0; i < this.elements.length; i++) {    
                    if (this.elements[i].key == _key){  
                        bln = true;  
                    }  
                }  
            }catch(e) {  
                bln = false;    
            }  
            return bln;  
        },  
         
        //判斷Map中是否含有指定value的元素  
        this.containsValue = function(_value) {  
            var bln = false;  
            try {  
                for (i = 0; i < this.elements.length; i++) {    
                    if (this.elements[i].value == _value){  
                        bln = true;  
                    }  
                }  
            }catch(e) {  
                bln = false;    
            }  
            return bln;  
        },  
       
        //獲取Map中所有key的數(shù)組(array)  
        this.keys = function() {  
            var arr = new Array();  
            for (i = 0; i < this.elements.length; i++) {    
                arr.push(this.elements[i].key);  
            }  
            return arr;  
        },  
      
        //獲取Map中所有value的數(shù)組(array)  
        this.values = function() {  
            var arr = new Array();  
            for (i = 0; i < this.elements.length; i++) {    
                arr.push(this.elements[i].value);  
            }  
            return arr;  
        };  
    }  
    //測(cè)試map  
    alert('測(cè)試map');  
    var map=new Map();  
    map.put(0,0);  
    map.put(1,1);  
    map.put(2,2);  
    alert('map的大小為:'+map.size());  
    for(var i=0;i<map.size();i++){  
        alert('map的key'+i+'對(duì)應(yīng)的value值為'+map.get(i));  
    }  
    alert('獲取map中不存在的鍵'+map.get('獲取map中不存在的鍵'));  
    alert('map中的所有鍵的長(zhǎng)度'+map.keys().length);  
    for(var i=0;i<map.keys().lenght;i++){  
        alert('map中的鍵值'+map.keys()[i]);  
    }  
    alert('map中的所有的value值的長(zhǎng)度'+map.values().length);  
    for(var i=0;i<map.values().length;i++){  
        alert('map中的value的值'+map.values()[i]);  
    }  
    alert('判斷map中的值value是否存在3'+map.containsValue(3));  
    </script>  
    <body>  
    測(cè)試map  
    </body>  
    </html>  

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:java獲得指定日期的前一天,后一天的代碼

下一篇:Java準(zhǔn)確的獲取操作系統(tǒng)的名稱(chēng)