Java HashMap 類



簡介

Java HashMap 類是 Map 介面基於雜湊表的實現。以下是關於 HashMap 的重要要點:

  • 此類不保證對映的迭代順序;特別是,它不保證順序會隨著時間的推移保持不變。

  • 此類允許 null 值和 null 鍵。

類宣告

以下是 java.util.HashMap 類的宣告:

public class HashMap<K,V>
   extends AbstractMap<K,V>
   implements Map<K,V>, Cloneable, Serializable

引數

以下是 java.util.HashMap 類的引數:

  • K - 此對映維護的鍵的型別。

  • V - 對映值的型別。

類建構函式

序號 建構函式 & 描述
1

HashMap()

使用預設初始容量 (16) 和預設負載因子 (0.75) 構造一個空的 HashMap。

2

HashMap(int initialCapacity)

使用指定的初始容量和預設負載因子 (0.75) 構造一個空的 HashMap。

3

HashMap(int initialCapacity, float loadFactor)

使用指定的初始容量和負載因子構造一個空的 HashMap。

4

HashMap(Map<? extends K,? extends V> m)

使用與指定 Map 相同的對映構造一個新的 HashMap。

類方法

序號 方法 & 描述
1 void clear()

此方法從此對映中刪除所有對映。

2 Object clone()

此方法返回此 HashMap 例項的淺複製,鍵和值本身不會被克隆。

3 V compute​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)

嘗試為指定的鍵及其當前對映值(如果當前沒有對映則為 null)計算對映。

4 V computeIfAbsent​(K key, Function<? super K,​? extends V> mappingFunction)

如果指定的鍵尚未與值關聯(或對映到 null),則嘗試使用給定的對映函式計算其值,並將其輸入到此對映中,除非為 null。

5 V computeIfPresent​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)

如果指定鍵的值存在且不為 null,則嘗試根據鍵及其當前對映值計算新的對映。

6 boolean containsKey(Object key)

此方法如果此對映包含指定鍵的對映,則返回 true。

7 boolean containsValue(Object value)

此方法如果此對映將一個或多個鍵對映到指定值,則返回 true。

8 Set<Map.Entry<K,V>> entrySet()

此方法返回此對映中包含的對映的 Set 檢視。

9 V get(Object key)

此方法返回指定鍵對映到的值,如果此對映不包含該鍵的對映,則返回 null。

10 boolean isEmpty()

此方法如果此對映不包含任何鍵值對映,則返回 true。

11 Set<K> keySet()

此方法返回此對映中包含的鍵的 Set 檢視。

12 V merge​(K key, V value, BiFunction<? super V,​? super V,​? extends V> remappingFunction)

如果指定的鍵尚未與值關聯或與 null 關聯,則將其與給定的非 null 值關聯。

13 V put(K key, V value)

此方法將指定的值與此對映中的指定鍵關聯。

14 void putAll(Map<? extends K,? extends V> m)

此方法將指定對映中的所有映射覆制到此對映。

15 V remove(Object key)

此方法如果存在,則從此對映中刪除指定鍵的對映。

16 int size()

此方法返回此對映中鍵值對映的數量。

17 Collection<V> values()

此方法返回此對映中包含的值的 Collection 檢視。

繼承的方法

此類繼承自以下類的方法:

  • java.util.AbstractMap
  • java.util.Object
  • java.util.Map

示例

以下程式說明了 HashMap 集合支援的幾種方法:

import java.util.*;
public class HashMapDemo {

   public static void main(String args[]) {
   
      // Create a hash map
      HashMap hm = new HashMap();
      
      // Put elements to the map
      hm.put("Zara", new Double(3434.34));
      hm.put("Mahnaz", new Double(123.22));
      hm.put("Ayan", new Double(1378.00));
      hm.put("Daisy", new Double(99.22));
      hm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = hm.entrySet();
      
      // Get an iterator
      Iterator i = set.iterator();
      
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposit 1000 into Zara's account
      double balance = ((Double)hm.get("Zara")).doubleValue();
      hm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + hm.get("Zara"));
   }
}

這將產生以下結果:

輸出

Daisy: 99.22
Ayan: 1378.0
Zara: 3434.34
Qadir: -19.08
Mahnaz: 123.22

Zara's new balance: 4434.34
廣告

© . All rights reserved.