激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java中Map的用法詳解

Java中Map的用法詳解

2020-04-25 15:51java教程網(wǎng) JAVA教程

將鍵映射到值的對(duì)象。一個(gè)映射不能包含重復(fù)的鍵;每個(gè)鍵最多只能映射到一個(gè)值。此接口取代 Dictionary 類(lèi),后者完全是一個(gè)抽象類(lèi),而不是一個(gè)接口

Map簡(jiǎn)介

將鍵映射到值的對(duì)象。一個(gè)映射不能包含重復(fù)的鍵;每個(gè)鍵最多只能映射到一個(gè)值。此接口取代 Dictionary 類(lèi),后者完全是一個(gè)抽象類(lèi),而不是一個(gè)接口。

  Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關(guān)系集的形式查看某個(gè)映射的內(nèi)容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實(shí)現(xiàn)可明確保證其順序,如 TreeMap 類(lèi);另一些映射實(shí)現(xiàn)則不保證順序,如HashMap 類(lèi)。

  注:將可變對(duì)象用作映射鍵時(shí)必須格外小心。當(dāng)對(duì)象是映射中某個(gè)鍵時(shí),如果以影響 equals 比較的方式更改了對(duì)象的值,則映射的行為將是不確定的。此項(xiàng)禁止的一種特殊情況是不允許某個(gè)映射將自身作為一個(gè)鍵包含。雖然允許某個(gè)映射將自身作為值包 含,但請(qǐng)格外小心:在這樣的映射上 equals 和 hashCode 方法的定義將不再是明確的。

  所有通用的映射實(shí)現(xiàn)類(lèi)應(yīng)該提供兩個(gè)“標(biāo)準(zhǔn)的”構(gòu)造方法:一個(gè) void (無(wú) 參數(shù))構(gòu)造方法,用于創(chuàng)建空映射;一個(gè)是帶有單個(gè) Map 類(lèi)型參數(shù)的構(gòu)造方法,用于創(chuàng)建一個(gè)與其參數(shù)具有相同鍵-值映射關(guān)系的新映射。實(shí)際上,后一個(gè)構(gòu)造方法允許用戶(hù)復(fù)制任意映射,生成所需類(lèi)的一個(gè)等價(jià)映射。盡 管無(wú)法強(qiáng)制執(zhí)行此建議(因?yàn)榻涌诓荒馨瑯?gòu)造方法),但是 JDK 中所有通用的映射實(shí)現(xiàn)都遵從它。

  此接口中包含的“破壞”方法可修改其操作的映射,如果此映射不支持該操作,這些方法將拋出 UnsupportedOperationException。如果是這樣,那么在調(diào)用對(duì)映射無(wú)效時(shí),這些方法可以(但不要求)拋出 UnsupportedOperationException。例如,如果某個(gè)不可修改的映射(其映射關(guān)系是“重疊”的)為空,則對(duì)該映射調(diào)用 putAll(Map) 方法時(shí),可以(但不要求)拋出異常。

  某些映射實(shí)現(xiàn)對(duì)可能包含的鍵和值有所限制。例如,某些實(shí)現(xiàn)禁止 null 鍵和值,另一些則對(duì)其鍵的類(lèi)型有限制。嘗試插入不合格的鍵或值將拋出一個(gè)未經(jīng)檢查的異常,通常是 NullPointerException 或 ClassCastException。試圖查詢(xún)是否存在不合格的鍵或值可能拋出異常,或者返回 false;某些實(shí)現(xiàn)將表現(xiàn)出前一種行為,而另一些則表現(xiàn)后一種。一般來(lái)說(shuō),試圖對(duì)不合格的鍵或值執(zhí)行操作且該操作的完成不會(huì)導(dǎo)致不合格的元素被插入映射 中時(shí),將可能拋出一個(gè)異常,也可能操作成功,這取決于實(shí)現(xiàn)本身。這樣的異常在此接口的規(guī)范中標(biāo)記為“可選”。

  此接口是 Java Collections Framework 的成員。

  Collections Framework 接口中的很多方法是根據(jù) equals 方法定義的。例如,containsKey(Object key) 方法的規(guī)范中寫(xiě)道:“當(dāng)且僅當(dāng)此映射包含針對(duì)滿(mǎn)足 (key==null ? k==null : key.equals(k)) 的鍵 k 的映射關(guān)系時(shí),返回 true”。不 應(yīng)將此規(guī)范解釋為:調(diào)用具有非空參數(shù) key 的 Map.containsKey 將導(dǎo)致對(duì)任意的鍵 k 調(diào)用 key.equals(k)。實(shí)現(xiàn)可隨意進(jìn)行優(yōu)化,以避免調(diào)用 equals,例如,可首先比較兩個(gè)鍵的哈希碼(Object.hashCode() 規(guī)范保證哈希碼不相等的兩個(gè)對(duì)象不會(huì)相等)。一般來(lái)說(shuō),只要實(shí)現(xiàn)者認(rèn)為合適,各種 Collections Framework 接口的實(shí)現(xiàn)可隨意利用底層 Object 方法的指定行為。

常用操作說(shuō)明
  void clear()
  從此映射中移除所有映射關(guān)系(可選操作)。
  boolean containsKey(Object key)
  如果此映射包含指定鍵的映射關(guān)系,則返回 true。
  boolean containsValue(Object value)
  如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true。
  Set<Map.Entry<K,V>> entrySet()
  返回此映射中包含的映射關(guān)系的 Set 視圖。
  boolean equals(Object o)
  比較指定的對(duì)象與此映射是否相等。
  V get(Object key)
  返回指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null。
  int hashCode()
  返回此映射的哈希碼值。
  boolean isEmpty()
  如果此映射未包含鍵-值映射關(guān)系,則返回 true。
  Set<K> keySet()
  返回此映射中包含的鍵的 Set 視圖。
  V put(K key, V value)
  將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。
  void putAll(Map<? extends K,? extends V> m)
  從指定映射中將所有映射關(guān)系復(fù)制到此映射中(可選操作)。
  V remove(Object key)
  如果存在一個(gè)鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。
  int size()
  返回此映射中的鍵-值映射關(guān)系數(shù)。
  Collection<V> values()
  返回此映射中包含的值的 Collection 視圖。

Map的一般用法
1.聲明一個(gè)Map :

復(fù)制代碼 代碼如下:

Map map = new HashMap();


2 .向map中放值 ,注意: map是key-value的形式存放的,如:

復(fù)制代碼 代碼如下:

map.put("sa","dd");


3 .從map中取值 :

復(fù)制代碼 代碼如下:

String str = map.get("sa").toString,


結(jié)果是: str = "dd'
4 .遍歷一個(gè)map,從中取得key和value :

復(fù)制代碼 代碼如下:

Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人黄色免费视频 | 国产精品麻豆一区二区三区 | 国产精品久久久久影院老司 | hdhdhdhd19日本人 | 国产精品免费麻豆入口 | 国产69精品99久久久久久宅男 | 日韩2区 | 高清视频91| 美国av免费看 | 久久人体| 国产精品视频在 | 欧美日韩免费一区 | 国产99视频精品免视看9 | 免费国产人成网站 | 久久免费视频精品 | 日韩在线观看视频免费 | 亚洲一区二区观看播放 | 久久久久久久不卡 | 天天草夜夜 | av在线播放电影 | 欧美77| 精品小视频| 欧美成人亚洲 | 中日韩免费视频 | 中韩毛片 | 亚洲欧美aⅴ | 国产免费激情视频 | 91久久精品国产亚洲 | 青青草在线免费观看 | 免费网站看v片在线a | 久久精品女人天堂av | 久草在线视频精品 | 毛片国产 | 逼片| 久久久久久久九九九九 | 久久精品久久精品久久精品 | 国产五区 | 天天草天天色 | h久久 | 香蕉黄色网 | 成人福利视频 |