揭秘HashMap 與Map 物件之間的差異
在Java 中,HashMap 和Map 物件通常看起來可以互換,導致人們對它們的根本差異感到困惑。澄清一下,物件本身沒有區別 - 在這兩種情況下,您都會獲得一個帶有 String 鍵和 Object 值的 HashMap。
差別在於與物件關聯的介面。當您將物件宣告為 HashMap
讓我們探索一個實際範例來說明這個概念:
考慮一個名為 Foo 的類別它初始化兩個內部映射,things 和 moreThings,並透過存取器方法共用它們。這些映射最初被實作為 HashMap。
現在,假設 Foo 的子類別 SpecialFoo 使用一般方法來運算 things 和 moreThings。此方法使用與存取器方法(HashMap
稍後,如果您決定用 TreeMap 取代 Foo 中的 HashMap 實現,SpecialFoo 將遇到編譯錯誤,因為合約被違反了——Foo 現在提供 TreeMaps 而不是 HashMaps。這就需要對 SpecialFoo 進行修訂。
為了避免這種情況,謹慎的做法是使用通用介面 Map
針對最通用的介面進行編碼通常不那麼脆弱且適應性更強。透過遵守此原則,您可以在對程式碼庫進行更改時保持靈活性並防止出現不可預見的錯誤。
以上是HashMap 與 Map:什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!