Java 字典
在 Java 語言中,字典使用稱為 Map
介面的資料結構表示。Map
資料結構用於以鍵值對的形式呈現資料。Map
是一個跟蹤所有鍵和相應值的介面。使用者可以根據唯一鍵檢索值。Map
介面包含以下屬性:
Map
中的所有鍵都是唯一的。- 可以有一個唯一鍵對應一個或多個值。
- 鍵是非空的實體。
下面的程式碼塊演示了在 Java 語言中使用字典或 Map
。
import java.util.HashMap;
import java.util.Map;
public class Dictionary {
public static void main(String[] args) {
System.out.println("Dictionary in Java");
System.out.println("Using HashMap ");
Map<String, String> map = new HashMap<>();
map.put("1", "Letters with alphabetical Order with key A");
map.put("2", "Letters with alphabetical Order with key B");
System.out.println(map.get("2"));
}
}
除了 Collection
框架層次結構之外,Map
是一個單獨存在的介面。
Map
存在於 java.util
包中,顯示瞭如何將鍵對映到值。一個對映可以有多種實現,它們是:
HashMap
LinkedHashMap
雜湊表
每個的用法可以根據使用者對實現的需求而有所不同。
在上面的程式碼片段中,使用了 HashMap
實現。它是 Java 語言中預設且廣泛使用的類。所有三種型別之間的區別定義如下。
HashMap
是在 Java 1.2 版本中引入的,而 Hashtable
是一個遺留類。它是執行緒安全的,因此允許在多個執行緒之間進行併發操作,從而保持程式碼的一致性。但是 HashMap
不是執行緒安全的並且不允許併發。
由於 HashMap
的執行緒安全特性,它的效能比 Hashtable
更快。此外,HashMap
是快速失敗的,並且當它的例項一次被多個執行緒操作時會丟擲 ConcurrencyException
。相比之下,Hashtable
似乎是安全的。LinkedHashMap
的用例駐留在使用者想要儲存插入順序時。
Map
例項是使用上面程式碼塊中的 HashMap
類建立的。get
和 put
等操作用於儲存和檢索例項中的特定值。put
方法有兩個引數,即鍵和它的值。
在內部,如果鍵存在於 Map 物件中,則首先使用 containsKey()
函式對其進行評估。如果計算結果為真,則鍵的當前值將替換為新值。如果具有給定鍵的 Map
不支援定義的操作,則該方法將丟擲 UnsupportedOperationException
。
ClassCastException
如果鍵或值阻止鍵儲存,NullPointerException
如果指定的鍵或值是 null
並且 Map
不允許 null
鍵或值。IllegalArgumentException
如果鍵或值的某些屬性阻止其儲存在 Map
中。
一旦鍵被插入到 Map
中,就會使用 get
函式檢索它。get
函式採用一個作為唯一鍵的引數。當鍵不合適或指定的鍵為 null
時,它會丟擲 ClassCastException
和 NullPointerException
。
下面是使用 HashMap
類的 Map 介面的輸出。
Dictionary in Java
Using HashMap
Letters with alphabetical Order with key B
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn