Map 使用時機

Map是一個介面(Interface),我們可以透過TreeMap類別或HashMap類別來實作Map。Map通常用來儲存「成雙成對」的資料集合,每一筆資料都有Key跟對應到的Value

例如:
A(Key) 的ASCII碼是 65(Value)
B(Key) 的ASCII碼是 66(Value)

兩兩之間必須是唯一性,也就是說當你輸入A時,透過Map得到的值一定是65。

#實例
假設我需要大量翻譯(中翻英)字串時,如果使用if else,需要很多個判斷式,如果使用switch,也需要很多個case,程式碼看起來會非常冗長,並且不易閱讀也不好維護!

例如:
我需要翻譯100組字串
就需要100組的switch case

此時可以使用Map來重構switch statement,將被翻譯的字串視為Key,翻譯過後的字串視為Value。需要特別注意的是,Key跟Value皆必須為物件

簡單的程式碼範例如下所示:

private static Map<InputType, OutputType> MyMap =
  new HashMap<InputType, OutputType>(...);

static 
{
  MyMap.put(0, AAAAA);
  MyMap.put(1, BBBBB); 
  ...
}

實際範例如下所示:

創建一個HashMap做為翻譯清單,依序將Key與對應的Value放進去。

再透過以下程式碼依序將欲翻譯的字串帶入。

如此一來可使程式碼精簡許多,且容易閱讀與修改。

參考資料:
Map(Java Platform)

留言

這個網誌中的熱門文章

Repo 實用指令

什麼是 Bootloader?

程式語言常用之符號與詞彙 - 中英文對照