最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map的用法詳解

 更新時間:2016年05月07日 19:04:54   投稿:mdxy-dxy  
將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口

Map簡介

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

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

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

  所有通用的映射實現(xiàn)類應(yīng)該提供兩個“標準的”構(gòu)造方法:一個 void (無 參數(shù))構(gòu)造方法,用于創(chuàng)建空映射;一個是帶有單個 Map 類型參數(shù)的構(gòu)造方法,用于創(chuàng)建一個與其參數(shù)具有相同鍵-值映射關(guān)系的新映射。實際上,后一個構(gòu)造方法允許用戶復制任意映射,生成所需類的一個等價映射。盡 管無法強制執(zhí)行此建議(因為接口不能包含構(gòu)造方法),但是 JDK 中所有通用的映射實現(xiàn)都遵從它。

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

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

  此接口是 Java Collections Framework 的成員。

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

常用操作說明
  void clear()
  從此映射中移除所有映射關(guān)系(可選操作)。
  boolean containsKey(Object key)
  如果此映射包含指定鍵的映射關(guān)系,則返回 true。
  boolean containsValue(Object value)
  如果此映射將一個或多個鍵映射到指定值,則返回 true。
  Set<Map.Entry<K,V>> entrySet()
  返回此映射中包含的映射關(guān)系的 Set 視圖。
  boolean equals(Object o)
  比較指定的對象與此映射是否相等。
  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)系復制到此映射中(可選操作)。
  V remove(Object key)
  如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。
  int size()
  返回此映射中的鍵-值映射關(guān)系數(shù)。
  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,

結(jié)果是: str = "dd'
4 .遍歷一個map,從中取得key和value :
復制代碼 代碼如下:

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

相關(guān)文章

  • springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能

    springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能

    這篇文章主要介紹了springboot+mybatis配置clickhouse實現(xiàn)插入查詢功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • SpringData JPA Mongodb查詢部分字段問題

    SpringData JPA Mongodb查詢部分字段問題

    這篇文章主要介紹了SpringData JPA Mongodb查詢部分字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java反射機制的精髓講解

    Java反射機制的精髓講解

    今天小編就為大家分享一篇關(guān)于Java反射機制的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Spring實戰(zhàn)之@Autowire注解用法詳解

    Spring實戰(zhàn)之@Autowire注解用法詳解

    這篇文章主要介紹了Spring實戰(zhàn)之@Autowire注解用法,結(jié)合實例形式詳細分析了Spring @Autowire注解具體實現(xiàn)步驟與相關(guān)使用技巧,需要的朋友可以參考下
    2019-12-12
  • 如何在IDEA中查看依賴關(guān)系的方法步驟

    如何在IDEA中查看依賴關(guān)系的方法步驟

    這篇文章主要介紹了如何在IDEA中查看依賴關(guān)系的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結(jié)

    SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結(jié)

    這篇文章主要介紹了SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • @PathVariable注解,讓spring支持參數(shù)帶值功能的案例

    @PathVariable注解,讓spring支持參數(shù)帶值功能的案例

    這篇文章主要介紹了@PathVariable注解,讓spring支持參數(shù)帶值功能的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Maven添加reactor依賴失敗的解決方案

    Maven添加reactor依賴失敗的解決方案

    起初是自己在學spring boot3,結(jié)果到了reactor這一部分的時候,在項目的pom.xml文件中添加下列依賴報錯,接下來通過本文給大家介紹Maven添加reactor依賴失敗的解決方案,需要的朋友可以參考下
    2024-06-06
  • 基于SpringBoot實現(xiàn)QQ郵箱驗證碼注冊功能

    基于SpringBoot實現(xiàn)QQ郵箱驗證碼注冊功能

    QQ 郵箱是由騰訊公司推出的一款免費郵箱服務(wù),它提供了完整的郵件發(fā)送和接收功能,并且還支持多種郵件格式和附件類型,QQ 郵箱還具有強大的反垃圾郵件功能,可以有效地過濾垃圾郵件,并保護用戶隱私和安全,所以本文給大家介紹了基于SpringBoot實現(xiàn)QQ郵箱驗證碼注冊功能
    2024-11-11
  • 在spring-boot工程中添加spring mvc攔截器

    在spring-boot工程中添加spring mvc攔截器

    這篇文章主要介紹了在spring-boot工程中添加spring mvc攔截器,Spring MVC的攔截器(Interceptor)不是Filter,同樣可以實現(xiàn)請求的預(yù)處理、后處理。,需要的朋友可以參考下
    2019-06-06

最新評論

昭觉县| 家居| 罗江县| 昭平县| 白山市| 峡江县| 永寿县| 同德县| 神木县| 定结县| 宕昌县| 醴陵市| 罗城| 搜索| 迭部县| 嘉兴市| 广河县| 雷波县| 浦北县| 西宁市| 宁阳县| 吉木萨尔县| 榕江县| 东兴市| 油尖旺区| 正蓝旗| 南召县| 肃宁县| 堆龙德庆县| 昭苏县| 合肥市| 崇州市| 纳雍县| 泽普县| 花莲县| 大关县| 庄浪县| 剑阁县| 寻乌县| 尖扎县| 义乌市|