1.Map介面
成對存盤某些資訊時,例如:微信手機號對應一個微信號,
Map就是用來存盤“鍵(key)-值(value)對”.Map類中存盤的“鍵值對”通過鍵來標識,所以“鍵物件”不能重復,
Map介面的實作類有HashMap、TreeMap、HashTable、Properties等,
Map介面的常用方法:
1.Object put(Object key,Object value):存放鍵值對,
2.Object get(Object key):通過鍵物件查找得到值物件
3.Object remove(Object key):洗掉鍵物件對應得鍵值對
4.boolean containsKey(Object key):Map容器中是否包含鍵物件對應的鍵值對
5.boolean conrainsValue(Object value):Mao容器中是否包含值物件對應得鍵值對
6.int size():包含鍵值對得數量
7.boolean isEmpty():Map是否為空
8.void putAll(Map t):將t的所有鍵值對存放到本Map物件
9.void clear():清空本Map物件所有的鍵值對
例:

例:

2.HashMap底層實作
HashMap底層實作采用了哈希表, 哈希表的基本結構:陣列+鏈表,
1.陣列:占用空間連續,尋址容易,增刪效率低
2.鏈表:占用空間不連續,尋址困難,增刪效率高
哈希表結合了陣列和鏈表的優點:查詢塊,增刪效率高
在jdk8中,hashmap在存盤一個元素時,當對應鏈表大于8時,鏈表轉換為紅黑樹,
3.TreeMap使用和底層實作
TreeMap底層是紅黑二叉樹,在遇到key或者value需要排序的時候就用TreeMap(使用不多)
例:

泛型為自定義類的時候可以用comparable介面來排序

4.HashTable底層實作
HashTable和HashMap用法幾乎一致,底層實作也類似,HashTable加入了synchronized關鍵字確保執行緒同步檢查
HashMap:執行緒不安全,效率高,允許泛型為空
HashTable:執行緒安全,效率低,不允許泛型為空
5.Set介面
Set介面繼承于Collection,Set介面無新增方法,方法和Collection一致,所有List方法都可用于Set介面,
Set容器特點:無序,不可以重復,無序代表Set中的元素無索引,我們只能通過遍歷查找,
新元素加入時和Set中任意一個元素通過equals()比較時為true,則不能加入,Set中只能由一個null元素
Set介面的實作類有:HashSet和TreeSet等,常用HashSet,
例:

6.HashSet底層實作
HashSet底層采用哈希演算法實作,相當于HashMap的簡化版,因此查詢和增刪效率都比較高
HashSet中每個元素都是HashMap+key,因為key不能重復,所以HashSet不能重復,
7.TreeSet底層實作
TreeSet底層實際用TreeMap實作,相當于簡化的TreeMap,通過key來存盤Set的元素,
TreeSet內部需要對存盤單元進行排序,同樣使用Comparable介面比較
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155293.html
標籤:Java
上一篇:SpringMvc 400 Bad Request解決方法(后臺轉bean失敗)
下一篇:大資料量分批執行封裝
