集合Map函式常用方法以及遍歷
阿新 • • 發佈:2019-01-29
Map的資料儲存方式
-
map<K,V>
map基本方法使用
新增資料
-
put(k,v>
-
putall(Map map)
刪除
-
remove 移除一個鍵的對映關係
-
clear 移除所有的對映
查詢
-
containsKey(Object key):查詢該key值是否存在
-
containsValue(Object value) :查詢該value值是否存在
比較
-
equal和hashCode
其他功能:
-
entrySet():返回set對映關係檢視
-
keySet():返回包含鍵的set檢視
-
size():返回關係數
-
values():返回包含值的Collection檢視
-
get(Object key):獲取指定鍵的值
遍歷Map物件的四種方式:
-
通過entrySet獲得set物件結果集,然後遍歷結果集,每個物件是一個Map,然後getKey和getValues
Set<Map.Entry<Object, Object>> setlist =map.entrySet(); for (Map.Entry<Object, Object> setone : setlist) { System.out.println(setone.getKey()+":"+setone.getValue()); }
優點:普遍,可以同時獲得鍵和值
缺點:效率並不是很高
-
通過keySet()方法得到key的set結果集,遍歷得到Key值;通過values()方法的values結果集,比例得到key值
Set<Object> keyset = map.keySet(); for (Object o : keyset) { System.out.println("key"+o); } Collection<Object> values = map.values(); for (Object value : values) { System.out.println("值是"+value); }
優點:效率高
缺點:要分別得到key與value
-
通過entrySet得到set物件結果 集,然後用遍歷器iterator遍歷得到結果集
Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<Object,Object> entry=iterator.next(); System.out.println(entry.getKey()+":"+ entry.getValue()); }
優點:適應老版本,遍歷時呼叫iterator.remove()來刪除entries
缺點:程式碼看起來冗餘
-
這個不推薦,跟第二中相通,先通過keySet()獲得key的結果集,遍歷得到每一個key值,然後通過get(key)獲得值,
Set<Object> keyset = map.keySet(); for (Object o : keyset) { System.out.println(o+":"+map.get(o)); }
優點:程式碼簡練
缺點:效率更低
由於筆者能力問題,有不足的地方,希望指出來!