為什麼字串類在Java的HashMap中作為鍵很流行?


Map是Java中的一種集合,用於儲存鍵值對。鍵不能為null,每個鍵只能指向一個值。它由java.util包的**Map**介面表示。有各種類實現了這個介面。

HashMap是一個實現了Map介面的類。它基於雜湊表。它允許null值和null鍵。

簡而言之,你可以在HashMap物件中儲存鍵值對。一旦你這樣做,你就可以檢索相應鍵的值,但是,我們用作鍵的值應該是唯一的。

示例

import java.util.HashMap;
import java.util.Scanner;
public class HashMapExample {
   public static void main(String args[]) {
      HashMap<String, Long> map = new HashMap<String, Long>();
      System.out.println("Enter the number of records you need to store: ");
      Scanner sc = new Scanner(System.in);
      int num = sc.nextInt();
      for(int i=0; i<num; i++) {
         System.out.println("Enter key (String): ");
         String key = sc.next();
         System.out.println("Enter value (Long): ");
         long value = sc.nextLong();
         map.put(key, value);
      }
      System.out.println("Values Stored . . . . . .");
      System.out.println("Enter a name (key): ");
      String reqKey = sc.next();
      System.out.println("Phone number (value): "+map.get(reqKey));
   }
}

輸出

Enter the number of records you need to store:
3
Enter key (String):
Krishna
Enter value (Long):
9848022337
Enter key (String):
Vishnu
Enter value (Long):
9848022338
Enter key (String):
Moksha
Enter value (Long):
9848022339
Values Stored . . . . . .
Enter a name (key):
Krishna
Phone number (value): 9848022337

字串作為HashMap的鍵

當你建立一個HashMap物件並嘗試向其中儲存鍵值對時,在儲存過程中,會計算給定鍵的雜湊碼,並將它的值放在由鍵的雜湊碼所表示的位置。

當你傳遞鍵來檢索它的值時,會再次計算雜湊碼,並獲取雜湊碼所表示位置的值(如果兩個雜湊碼相等)。

假設我們使用某個變數作為鍵來儲存資料,之後我們修改了這個變數的值。在檢索時,由於我們更改了鍵,當前鍵的雜湊碼將與儲存其值的hashCode不匹配,從而導致檢索失敗。

由於String類是不可變的,一旦建立String,就不能修改它的值。因此,建議使用String變數來儲存雜湊對映中的鍵。

更新於:2020年7月2日

3K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告