天天看點

java基礎-Java集合架構-Map接口-概述Java集合架構-Map接口-概述

Java集合架構-Map接口-概述

Map接口繼承樹

java基礎-Java集合架構-Map接口-概述Java集合架構-Map接口-概述

Map接口的子類實作

  • Map:雙列資料,存儲key-value對的資料
    • HashMap:作為Map的主要實作類,線程不安全的,效率高,存儲null的key和value
      • LinkedHashMap:保證周遊Map元素時,可以按照添加的順序實作周遊。
        • 原因:在原有的HashMap底層基礎上,添加了一對指針prev和next,指向前一個和後一個元素
        • 對于頻繁的周遊操作,LinkedHashMap的效率高于HashMap
    • HashMap的底層
      • 數組+連結清單(jdk7)
      • 數組+連結清單+紅黑樹(jdk8)
    • TreeMap:保證按照添加的tree-value對進行排序,實作按照key排序周遊。(使用的是key的自然排序和定制排序
      • TreeMap底層使用的是紅黑樹
    • Hashtable:作為古老的Map接口的實作類,線程安全的,效率低,不能存儲null的key和value
      • Properties:常用來處理配置檔案。key和value都是String類型

Map接口的描述

  • Map中key是無序,不能重複的,value無序,可重複的。key無序,value無序
    • key使用Set存儲,無序,不可重複的。–》要求HashMap中的key所在的類要重寫equals()和hashCode()方法,TreeMap的話則需要定義自然排序或者定制排序
    • value使用collection存,無序的,可以重複的。----》value所在的類要重寫equals()
    • 一個鍵值對:key-value構成了一個Entry對象
    • Map中的Entry對象:無序的,不可重複的,使用Set存儲所有的entry
java基礎-Java集合架構-Map接口-概述Java集合架構-Map接口-概述

Map接口:常用方法

  • 添加、删除、修改操作:
    • Object put(Object key,Object value):将指定key-value添加到(或修改)目前map對象中