Java中Map的用法詳解。本站提示廣大學習愛好者:(Java中Map的用法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中Map的用法詳解正文
Map簡介
將鍵映照到值的對象。一個映照不克不及包括反復的鍵;每一個鍵最多只能映照到一個值。此接口代替 Dictionary 類,後者完整是一個籠統類,而不是一個接口。
Map 接口供給三種collection 視圖,許可以鍵集、值集或鍵-值映照關系集的情勢檢查某個映照的內容。映照次序 界說為迭代器在映照的 collection 視圖上前往其元素的次序。某些映照完成可明白包管其次序,如 TreeMap 類;另外一些映照完成則不包管次序,如HashMap 類。
注:將可變對象用作映照鍵時必需非分特別當心。當對象是映照中某個鍵時,假如以影響 equals 比擬的方法更改了對象的值,則映照的行動將是不肯定的。此項制止的一種特別情形是不許可某個映照將本身作為一個鍵包括。固然許可某個映照將本身作為值包 含,但請非分特別當心:在如許的映照上 equals 和 hashCode 辦法的界說將不再是明白的。
一切通用的映照完成類應當供給兩個“尺度的”結構辦法:一個 void (無 參數)結構辦法,用於創立空映照;一個是帶有單個 Map 類型參數的結構辦法,用於創立一個與其參數具有雷同鍵-值映照關系的新映照。現實上,後一個結構辦法許可用戶復制隨意率性映照,生成所需類的一個等價映照。盡 管沒法強迫履行此建議(由於接口不克不及包括結構辦法),然則 JDK 中一切通用的映照完成都服從它。
此接口中包括的“損壞”辦法可修正其操作的映照,假如此映照不支撐該操作,這些辦法將拋出 UnsupportedOperationException。假如是如許,那末在挪用對映照有效時,這些辦法可以(但不請求)拋出 UnsupportedOperationException。例如,假如某個弗成修正的映照(其映照關系是“堆疊”的)為空,則對該映照挪用 putAll(Map) 辦法時,可以(但不請求)拋出異常。
某些映照完成對能夠包括的鍵和值有所限制。例如,某些完成制止 null 鍵和值,另外一些則對其鍵的類型無限制。測驗考試拔出不及格的鍵或值將拋出一個未經檢討的異常,平日是 NullPointerException 或 ClassCastException。試圖查詢能否存在不及格的鍵或值能夠拋出異常,或許前往 false;某些完成將表示出前一種行動,而另外一些則表示後一種。普通來講,試圖對不及格的鍵或值履行操作且該操作的完成不會招致不及格的元素被拔出映照 中時,將能夠拋出一個異常,也能夠操作勝利,這取決於完成自己。如許的異常在此接口的標准中標志為“可選”。
此接口是 Java Collections Framework 的成員。
Collections Framework 接口中的許多辦法是依據 equals 辦法界說的。例如,containsKey(Object key) 辦法的標准中寫道:“當且僅當此映照包括針對知足 (key==null ? k==null : key.equals(k)) 的鍵 k 的映照關系時,前往 true”。不 應將此標准說明為:挪用具有非空參數 key 的 Map.containsKey 將招致對隨意率性的鍵 k 挪用 key.equals(k)。完成可隨便停止優化,以免挪用 equals,例如,可起首比擬兩個鍵的哈希碼(Object.hashCode() 標准包管哈希碼不相等的兩個對象不會相等)。普通來講,只需完成者以為適合,各類 Collections Framework 接口的完成可隨便應用底層 Object 辦法的指定行動。
經常使用操作解釋
void clear()
從此映照中移除一切映照關系(可選操作)。
boolean containsKey(Object key)
假如此映照包括指定鍵的映照關系,則前往 true。
boolean containsValue(Object value)
假如此映照將一個或多個鍵映照到指定值,則前往 true。
Set<Map.Entry<K,V>> entrySet()
前往此映照中包括的映照關系的 Set 視圖。
boolean equals(Object o)
比擬指定的對象與此映照能否相等。
V get(Object key)
前往指定鍵所映照的值;假如此映照不包括該鍵的映照關系,則前往 null。
int hashCode()
前往此映照的哈希碼值。
boolean isEmpty()
假如此映照未包括鍵-值映照關系,則前往 true。
Set<K> keySet()
前往此映照中包括的鍵的 Set 視圖。
V put(K key, V value)
將指定的值與此映照中的指定鍵聯系關系(可選操作)。
void putAll(Map<? extends K,? extends V> m)
從指定映照中將一切映照關系復制到此映照中(可選操作)。
V remove(Object key)
假如存在一個鍵的映照關系,則將其從此映照中移除(可選操作)。
int size()
前往此映照中的鍵-值映照關系數。
Collection<V> values()
前往此映照中包括的值的 Collection 視圖。
Map的普通用法
1.聲明一個Map :
Map map = new HashMap();
2 .向map中放值 ,留意: map是key-value的情勢寄存的,如:
map.put("sa","dd");
3 .從map中取值 :
String str = map.get("sa").toString,
成果是: str = "dd'
4 .遍歷一個map,從中獲得key和value :
Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}