本綜合指南探討了 Java 的 HashMap
,這是一種用於高效鍵值對存儲和管理的強大數據結構。 我們將介紹基本方法並提供實際示例來鞏固您的理解。
理解 HashMap
HashMap
將數據存儲為鍵值對,為 put
、get
和 remove
等核心操作提供(平均)恆定時間複雜度。 主要優點包括:
- 唯一鍵:每個鍵必須是唯一的;值可以重複。
- 多功能數據類型:鍵和值可以是任何對像類型。
-
包位置: 位於
java.util
包內。 -
空處理: 接受
null
作為鍵和值。
示例:
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
HashMap 創建
HashMap
構造函數很簡單:
HashMap<KeyType, ValueType> mapName = new HashMap<>();
示例:
HashMap<String, Integer> wordCounts = new HashMap<>();
這裡,String
代表鍵類型,Integer
代表值類型。
基本的 HashMap 方法
讓我們深入研究一下常用的HashMap
方法:
1。 put(K key, V value)
- 功能:增加一個鍵值對。如果密鑰存在,則更新了值。 >
- >範例:
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
2。 get(Object key)
-
功能:擷取與給定鍵關聯的值。如果沒有鍵,回傳
null
- >範例:
HashMap<KeyType, ValueType> mapName = new HashMap<>();
3。 getOrDefault(Object key, V defaultValue)
- 功能:檢索值;如果鍵遺失,請回傳。
defaultValue
- >範例:
HashMap<String, Integer> wordCounts = new HashMap<>();
4。 containsKey(Object key)
- 功能:檢查地圖是否包含指定的鍵。
> >範例:
HashMap<Integer, String> myMap = new HashMap<>(); myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(1, "Orange"); // Updates value for key 1 System.out.println(myMap); // Output: {1=Orange, 2=Banana}
5。
containsValue(Object value)
- 功能:
- 檢查地圖是否包含指定的值。 >範例:
System.out.println(myMap.get(1)); // Output: Orange System.out.println(myMap.get(4)); // Output: null
remove(Object key)
>>功能:
>刪除給定鍵的條目並傳回其值(或找不到的話)。 -
>範例:
null
- 7。
System.out.println(myMap.getOrDefault(4, "Default")); // Output: Default
putIfAbsent(K key, V value)
功能:>僅在鍵不存在時加入鍵值對。
>
- >範例:
- 8。
System.out.println(myMap.containsKey(1)); // Output: true System.out.println(myMap.containsKey(4)); // Output: false
replace(K key, V value)
功能:僅在鍵存在時替換鍵的值。
。
- >範例:
- 9。
System.out.println(myMap.containsValue("Orange")); // Output: true System.out.println(myMap.containsValue("Grape")); // Output: false
keySet()
功能:傳回地圖中所有鍵的a
。 - >
-
>範例:
Set
- 10。
System.out.println(myMap.remove(1)); // Output: Orange System.out.println(myMap); // Output: {2=Banana}
values()
功能:傳回地圖中所有數值的a
。 -
>範例:
Collection
- 11。
myMap.putIfAbsent(3, "Cherry"); // No change if key 3 exists System.out.println(myMap);
entrySet()
>功能:傳回所有鍵值對的A
(- )。
-
>範例:
Set
Map.Entry
- 12。
myMap.replace(2, "Mango"); System.out.println(myMap);
功能:compute(K key, BiFunction remappingFunction)
>使用提供的函數更新值。 >
>- 範例:
- (需要A實作)>
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
13。 merge(K key, V value, BiFunction remappingFunction)
- 功能:使用函數將新值與現有值結合在一起。
- >示例:(需要A
BiFunction
實現) >
HashMap<KeyType, ValueType> mapName = new HashMap<>();
綜合示例:單詞頻率分析
此示例顯示HashMap
用於計數單詞頻率:
HashMap<String, Integer> wordCounts = new HashMap<>();
結論
是一種基本的Java數據結構,提供有效的鍵值對管理。掌握其方法使您能夠應對各種編程挑戰,從簡單的數據查找到復雜的數據操縱任務。 將HashMap
納入您的項目以利用其力量和效率。
以上是如何與Java的Hashmap合作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境