java.util 中的集合類別包含 Java 中某些最常用的類別。最常用的集合類別是 List 和 Map。 List 的具體實作包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合建構、儲存和操作任何類型物件元素列表。 List 適用於以數值索引存取元素的情況。
Map 提供了一個更通用的元素儲存方法。 Map 集合類別用於儲存元素對(稱為「鍵」和「值」),其中每個鍵對應到一個值。從概念上而言,您可以將 List 看作是具有數值鍵的 Map。而實際上,除了 List 和 Map 都在定義 java.util 中外,兩者並沒有直接的連結。本文將著重介紹核心 Java 發行套件中附帶的 Map,同時也將介紹如何採用或實作更適用於您應用程式特定資料的專用 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对象,实现Map功能 * size() 获取Map元素个数 * 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的数组(array) * values() 获取Map中所有value的数组(array) * */ function Map(){ this.elements = new Array(); //获取Map元素个数 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的数组(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的数组(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+'对应的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>
運作效果圖:
以上就是本文的全部內容,希望對大家的學習有所幫助。