搜尋
首頁Javajava教程如何與Java的Hashmap合作

How to Work with HashMap in Java

本綜合指南探討了 Java 的 HashMap,這是一種用於高效鍵值對存儲和管理的強大數據結構。 我們將介紹基本方法並提供實際示例來鞏固您的理解。


理解 HashMap

HashMap 將數據存儲為鍵值對,為 putgetremove 等核心操作提供(平均)恆定時間複雜度。 主要優點包括:

  • 唯一鍵:每個鍵必須是唯一的;值可以重複。
  • 多功能數據類型:鍵和值可以是任何對像類型。
  • 包位置: 位於 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)

    功能:
  • 檢查地圖是否包含指定的值。
  • >範例:
6。
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)

  • 功能:使用函數將新值與現有值結合在一起。
  • >示例:(需要ABiFunction實現)
  • >
HashMap<KeyType, ValueType> mapName = new HashMap<>();

綜合示例:單詞頻率分析

此示例顯示HashMap用於計數單詞頻率:>

HashMap<String, Integer> wordCounts = new HashMap<>();

結論

是一種基本的Java數據結構,提供有效的鍵值對管理。掌握其方法使您能夠應對各種編程挑戰,從簡單的數據查找到復雜的數據操縱任務。 將HashMap納入您的項目以利用其力量和效率。

以上是如何與Java的Hashmap合作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Java平台是否獨立,如果如何?Java平台是否獨立,如果如何?May 09, 2025 am 12:11 AM

Java是平台獨立的,因為其"一次編寫,到處運行"的設計理念,依賴於Java虛擬機(JVM)和字節碼。 1)Java代碼編譯成字節碼,由JVM解釋或即時編譯在本地運行。 2)需要注意庫依賴、性能差異和環境配置。 3)使用標準庫、跨平台測試和版本管理是確保平台獨立性的最佳實踐。

關於Java平台獨立性的真相:真的那麼簡單嗎?關於Java平台獨立性的真相:真的那麼簡單嗎?May 09, 2025 am 12:10 AM

Java'splatFormIndenceIsnotsimple; itinvolvesComplexities.1)jvmcompatiblemustbebeeniblemustbeensuredacrossplatforms.2)Nativelibrariesandsystemcallsneedcarefulhandling.3)

Java平台獨立性:Web應用程序的優勢Java平台獨立性:Web應用程序的優勢May 09, 2025 am 12:08 AM

Java'splatformindependencebenefitswebapplicationsbyallowingcodetorunonanysystemwithaJVM,simplifyingdeploymentandscaling.Itenables:1)easydeploymentacrossdifferentservers,2)seamlessscalingacrosscloudplatforms,and3)consistentdevelopmenttodeploymentproce

JVM解釋:Java虛擬機的綜合指南JVM解釋:Java虛擬機的綜合指南May 09, 2025 am 12:04 AM

thejvmistheruntimeenvorment forexecutingjavabytecode,Cocucialforjava的“ WriteOnce,RunanyWhere”能力

Java的主要功能:為什麼它仍然是頂級編程語言Java的主要功能:為什麼它仍然是頂級編程語言May 09, 2025 am 12:04 AM

JavaremainsatopchoicefordevelopersduetoitsplatFormentence,對象與方向設計,強度,自動化的MememoryManagement和ComprechensivestAndArdArdArdLibrary

Java平台獨立性:這對開發人員意味著什麼?Java平台獨立性:這對開發人員意味著什麼?May 08, 2025 am 12:27 AM

Java'splatFormIndependecemeansDeveloperScanWriteCeandeCeandOnanyDeviceWithouTrecompOlding.thisAcachivedThroughThroughTheroughThejavavirtualmachine(JVM),WhaterslatesbyTecodeDecodeOdeIntComenthendions,允許univerniverSaliversalComplatibilityAcrossplatss.allospplats.s.howevss.howev

如何為第一次使用設置JVM?如何為第一次使用設置JVM?May 08, 2025 am 12:21 AM

要設置JVM,需按以下步驟進行:1)下載並安裝JDK,2)設置環境變量,3)驗證安裝,4)設置IDE,5)測試運行程序。設置JVM不僅僅是讓其工作,還包括優化內存分配、垃圾收集、性能調優和錯誤處理,以確保最佳運行效果。

如何查看產品的Java平台獨立性?如何查看產品的Java平台獨立性?May 08, 2025 am 12:12 AM

toensurejavaplatFormIntence,lofterTheSeSteps:1)compileAndRunyOpplicationOnmultPlatFormSusiseDifferenToSandjvmversions.2)upureizeci/cdppipipelinelikeinkinslikejenkinsorgithikejenkinsorgithikejenkinsorgithikejenkinsorgithike forautomatecross-plateftestesteftestesting.3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具