iT邦幫忙

2024 iThome 鐵人賽

0

Map 使用的是key value 的方式去儲存資料結構,主要可分為

  • HashMap :主要實作類,底層使用陣列 +單向鏈表 + 紅黑樹 的資料結構進行儲存。
  • LinkedHashMap :為HashMapsubclass ,差別在於使用雙向鏈表 紀錄元素新增的順序,適合使用在頻繁遍歷map的情況下使用。
  • Hashtable :JDK1.0時使用,現在已經很少在用
  • TreeMap :底層使用紅黑樹 進行資料儲存,依照指定keyvalue 進行排序,TreeSet 底層即是使用TreeMap 進行儲存。
  • Properties :是Hashtablesubclasskeyvalue 都必須是String ,主要用於處理屬性文件。

一個key-value 一般會把它稱為entry


Map 中常用的方法

  • void put(Object key, Object value) :新增一組key-value 到map中。
  • Object put(Object key, Object value) :修改map中對應keyvalue 改為參數中的value ,會將舊的value 返回。(💡當map中有相同的key 時,put() 方法也可以當作修改,如果key 使用自定義的類時,需要有equals()hashCode() 方法才有辦法進行修改)
  • void putAll(Map m) :將一個map新增至當前的map中,如果這個map中有相同的key 時,會將相同keyvalue 修改,跟put() 修改的概念一樣。
  • Object remove(Object key) :將對應的key-value 刪除,會返回被刪除的value
  • int size() :返回當前map 的長度。
  • Object get(Object key) :返回對應keyvalue
  • Set keySet() :返回一個set,裡面包含當前map 中所有的key
  • Collection values() :返回一個collection,裡面包含當前map 中所有的value
  • Set entrySet() :返回一個set,裡面包含當前map 中所有的key-value

TreeMap :新增資料時key類型 必須相同,否則會出現ClassCastException 的錯誤,並且在使用TreeMap 時,要考慮的排序的問題。


上一篇
Day40-集合Collection(二)-List、Set
系列文
前端工程師的java學習紀錄41
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言