MAP的使用
文章出處:http://www.katarog.com 作者:興邦開發部 人氣: 發表時間:2016年11月04日
Map的 屬性
Map map=new HashMap() 理解
Map是接口,hashMap是Map的一種實現。接口不能被實例化。 Map map=new HashMap(); 就是將map實例化成一個hashMap。這樣做的好處是調用者不需要知道map具體的實現,map接口與具體實現的映射java幫你做了。打個比方,A是一個頭頭,手下有幾個人:張三,李四等等。A需要手下做一件事情,A關心的是有沒有人做,而不關心到底是誰去做,A只需要喊一聲:“來人!”具體的是哪個人進來幫你做事無所謂。 如果說這樣寫
HashMap map = new HashMap();就相當于你指定要張三做事:“來張三!
前者好,因為如果將來你可能會發現使用HashMap不滿足要求,例如HashMap不是線程
安全的、HashMap對Put到里面的Key沒有排序等。
如果使用后者則可能需要修改大量的地方
map是接口,不能用new出對象,hashmap是繼承map接口的實現類,可以new出對象
實現map接口的類都城有如下屬性,都是把其中數據做為key-value來放,即是就說的鍵值對。
Map map = new HashMap();比HashMap map = new HashMap();寫法更好點,這是多態的一種體現,也是封裝性的一種體現。
第一種可以改為Map map = new HashTable();后面的代碼就不需要改變的,這樣代碼的變
動就小了,便于開發和維護。
如果用HashMap map = new HashMap();就會出現在查找程序中出現的每個地方來修改,這樣會加大開發和維護的成本。在開發時我們盡量讓類或者對象封裝好,盡量實現多態,這樣便于開發和維護。
Map.keyset()
Set keys=Map.keyset();
Set 是java中一個存儲不重復元素,且無序的集合類。
Map.keyset(),表示將map對象的所有key值已set集合的形式返回,因為map也是無序的,且key值也是不可重復的,因此這里用set集合存儲key并返回也符合規則。
Map.values方法——獲取Map集合中的所有鍵值對象
該方法用來獲取Map集合中的所有鍵值對象,這些鍵值對象將存放在另一個集合對象中。
語法 values()
示例 本示例創建一個Map集合對象并添加一些內容,然后調用values方法獲取包
含所有鍵值的集合對象,并輸出這些鍵值信息。
public static void main(String[] args) {
Map map = new HashMap(); //定義Map集合對象
map.put("apple", "新鮮的蘋果"); //向集合中添加對象
map.put("computer", "配置優良的計算機");
map.put("book", "堆積成山的圖書");
Collection values = map.values(); //獲取Map集合的value集合
for (Object object : values) {
System.out.println("鍵值:" + object.toString()); //輸出鍵值對象
}
}