Java中的對映Map - 入門篇
阿新 • • 發佈:2021-04-01
## 前言
大家好啊,我是湯圓,今天給大家帶來的是《Java中的對映Map - 入門篇》,希望對大家有幫助,謝謝
## 簡介
前面介紹了集合List,這裡開始簡單介紹下對映`Map`,相關類如下圖所示
![集合](https://i.loli.net/2021/03/30/kTAnEyP9cv1DXai.png)
## 正文
Map是一種儲存鍵值對的資料集合,鍵以雜湊或者樹形結構進行儲存;
> 為什麼會設計Map介面呢?
假設我們有一個員工類,裡面有Id屬性和姓名等其他資訊,現在我們把所有員工都存到List裡,然後要找出Id為001的員工,你會發現,你需要從List中遍歷每個物件,然後取出Id進行比較;
你會發現這種查詢法效率很低,有點殺雞用牛刀的感覺;
這時如果有一個集合類,可以以鍵值對對映的方式的儲存員工資訊(Id作為鍵,員工資訊作為值),那麼就可以只遍歷鍵列表,然後進行比較;
你會發現這種查詢法效率提高了很多,因為物盡其用了(比較的是Id,也只是取了Id,沒有浪費);
這就是Map介面的作用,可以根據某個鍵去查詢對應的資訊,有點類似於資料庫的設計。
### Map的種類
Map主要有三種類型:HashMap(常用)、TreeMap(樹形結構)、LinkedHashMap(前兩者的結合)
我們先來看一下Map介面主要的幾個方法:
- `V put(K key, V value)`:往Map中新增鍵值對,其中key為鍵,value為值;如果key存在,則覆蓋原有的值;如果不存在,則新建鍵值對。
- `V get(Object key)`:從Map中查詢鍵key對應的值,如果沒有,則返回null
- `default V getOrDefault(Object key, V defaultValue)`:從Map中查詢鍵key對應的值,如果沒有,則返回第二個引數(設定的預設值);這裡的修飾符default是用在介面方法中,表示這個方法在介面中已經實現了,子類可以不實現(Java8開始支援