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