国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - JAVA教程 - Java中Map的用法詳解

Java中Map的用法詳解

2020-04-25 15:51java教程網 JAVA教程

將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口

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 );
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂在线视频 | 免费在线黄色电影 | 国内精品久久久 | 国产毛片v一区二区三区 | 日批免费观看视频 | 日韩欧美一区二区三区 | 色综合网在线 | 色黄视频| 欧美激情一区二区三区在线视频 | 日韩精品一区二区三区中文字幕 | 国产日韩一区 | 亚洲专区 中文字幕 | 欧美精品久久久久 | 91精品国产综合久久久久久丝袜 | 国产精品一区二区无线 | 久久久毛片| 久久在线视频 | 在线色网站 | 久久精品无码一区二区三区 | av片免费看 | 一区二区三区精品 | 日韩高清在线 | 日韩精品一区在线视频 | 日本午夜视频 | 欧美www| 天天精品 | 欧美精品一区二区在线观看 | 国产精品视频导航 | 亚洲精品字幕 | 黑人精品欧美一区二区蜜桃 | 国产精品欧美久久久久一区二区 | 色婷婷综合久久久中字幕精品久久 | 日韩一区二区三区在线观看 | 日韩欧美精品一区二区 | 亚洲国产日韩欧美在线 | 粉嫩欧美一区二区三区高清影视 | 久久综合久久综合久久 | 欧美一区永久视频免费观看 | 久久精品国产99精品国产亚洲性色 | 中文字幕亚洲一区二区三区 | 精品国产欧美一区二区 |