亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js模仿java的Map集合詳解

 更新時間:2016年01月06日 11:01:50   作者:偽磚家  
這篇文章主要介紹了js模仿java的Map集合的相關(guān)資料,Java中某些最常用的集合類是List和Map,感興趣的小伙伴們可以了解一下

java.util 中的集合類包含 Java 中某些最常用的類。最常用的集合類是 List 和 Map。List 的具體實(shí)現(xiàn)包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲和操作任何類型對象元素列表。List 適用于按數(shù)值索引訪問元素的情形。
Map 提供了一個更通用的元素存儲方法。Map 集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。從概念上而言,您可以將 List 看作是具有數(shù)值鍵的 Map。而實(shí)際上,除了 List 和 Map 都在定義 java.util 中外,兩者并沒有直接的聯(lián)系。本文將著重介紹核心 Java 發(fā)行套件中附帶的 Map,同時還將介紹如何采用或?qū)崿F(xiàn)更適用于您應(yīng)用程序特定數(shù)據(jù)的專用 Map。
了解完java中的Map后,直接上代碼了!

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
<title>測試map</title> 
</head> 
<style type="text/css"> 
</style> 
<script type="text/javascript"> 
/* 
 * Map對象,實(shí)現(xiàn)Map功能 
 * size() 獲取Map元素個數(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元素個數(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; 
  }; 
} 
//測試map 
alert('測試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+'對應(yīng)的value值為'+map.get(i)); 
} 
alert('獲取map中不存在的鍵'+map.get('獲取map中不存在的鍵')); 
alert('map中的所有鍵的長度'+map.keys().length); 
for(var i=0;i<map.keys().lenght;i++){ 
  alert('map中的鍵值'+map.keys()[i]); 
} 
alert('map中的所有的value值的長度'+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> 
測試map 
</body> 
</html> 

運(yùn)行效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論