Java 中Map 的用法詳解
Map簡介
將鍵映射到值的物件。一個映射不能包含重複的鍵;每個鍵最多只能映射到一個值。此介面取代 Dictionary 類,後者完全是抽象類,而不是一個介面。
Map 介面提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關係集的形式查看某個映射的內容。映射順序 定義為迭代器在映射的 collection 視圖上傳回其元素的順序。某些映射實作可明確保證其順序,如 TreeMap 類別;其他映射實作則不保證順序,如HashMap 類別。
註:將可變物件用作映射鍵時必須格外小心。當物件是映射中某個鍵時,如果以影響 equals 比較的方式更改了物件的值,則映射的行為將是不確定的。此項禁止的一種特殊情況是不允許某個映射將自身作為一個鍵包含。雖然允許某個映射將自身作為值包 含,但請格外小心:在這樣的映射上 equals 和 hashCode 方法的定義將不再是明確的。
Map 介面:
Map提供key到value的對應。一個Map中不能包含相同的key,每個key只能對應一個value。 Map介面提供3種集合的視圖,Map的內容可以當作一組key集合,一組value集合,或是一組key-value映射。
Hashtable類別
Hashtable繼承Map接口,且實作一個key-value對應的雜湊表。任何非空(non-null)的物件都可作為key或value。
新增資料使用put(key, value),取出資料使用get(key),這兩個基本運算的時間開銷為常數。 Hashtable透過initial capacity和load factor兩個參數調整效能。通常缺省的load factor 0.75較好地實現了時間與空間的平衡。增加load factor可以節省空間但相應的查找時間將增加,這會影響像get和put這樣的操作。
使用Hashtable的簡單示例如下,將1,2,3放到Hashtable中,他們的key分別是”one”,”two”,”three”:
Hashtable numbers = new Hashtable(); numbers.put(“one”, new Integer(1)); numbers.put(“two”, new Integer(2)); numbers.put(“three”, new Integer(3));
要一個要數,例如取出一個數,用對應的key:
Integer n = (Integer)numbers.get(“two”); System.out.println(“two = ” + n);
由於作為key的物件將透過計算其雜湊函數來確定與之對應的value的位置,因此任何作為key的物件都必須實作hashCode和equals方法。 hashCode和equals方法繼承自根類別Object,如果你用自訂的類別當作key的話,要相當小心,按照雜湊函數的定義,如果兩個物件相同,即obj1.equals(obj2)=true,則它們的hashCode必須相同,但如果兩個物件不同,則它們的hashCode不一定不同,如果兩個不同物件的hashCode相同,這種現象稱為衝突,衝突會導致操作雜湊表的時間開銷增大,所以盡量定義好的hashCode()方法,能加快雜湊表的操作。
如果相同的物件有不同的hashCode,對雜湊表的操作會出現意想不到的結果(期待的get方法傳回null),要避免這種問題,只需要牢記一條:要同時複寫equals方法和hashCode方法,而不要只寫其中一個。
Hashtable是同步的。
HashMap類
HashMap和Hashtable類似,且不同之處在於HashMap是非同步的,並且允許null,即null value和null key。 ,但是將HashMap視為Collection時(values()方法可傳回Collection),其迭代子操作時間開銷和HashMap的容量成比例。因此,如果迭代操作的效能相當重要的話,不要將HashMap的初始化容量設得太高,或是load factor過低。
WeakHashMap類
WeakHashMap是改良的HashMap,而它對key實行“弱引用”,如果一個key不再被外部所引用,那麼該key就可以被GC回收。
以上就是Java Map介面的介紹,學習java程式設計的同學可以參考下。
更多Java 中Map 的用法詳解相關文章請關注PHP中文網!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

JavaMap是Java標準函式庫中常用的資料結構,它以鍵值對的形式儲存資料。 Map的效能對於應用程式的運作效率至關重要,如果Map的效能不佳,可能會導致應用程式運作緩慢,甚至崩潰。 1.選擇合適的Map實作Java提供了多種Map實現,包括HashMap、TreeMap和LinkedHashMap。每種Map實作都有各自的優缺點,在選擇Map實作時,需要根據應用程式的特定需求來選擇合適的實作。 HashMap:HashMap是最常用的Map實現,它使用哈希表來儲存數據,具有較快的插入、刪除和查找速度

JavaMap是一個基於鍵值對的資料結構,它允許開發人員快速儲存和檢索資料。 Map的鍵可以是任何對象,而值可以是任何類型的資料。 Map中每個鍵最多只能與一個值相關聯,如果對同一個鍵設定多個值,則只會保留最後設定的值。 Map有兩種主要實作:HashMap:使用散列表來儲存鍵值對。 HashMap的效能取決於散列表的實作方式,在大多數情況下,HashMap的效能優於TreeMap。 TreeMap:使用紅黑樹來儲存鍵值對。 TreeMap的效能與HashMap相似,但在某些情況下,TreeMap的效能可

Map介面概述Map介面是Java集合框架中用於儲存鍵值對的資料結構。它允許您使用鍵來查找和檢索關聯的值。 Map介面提供了許多有用的方法,包括put()、get()、remove()、containsKey()、containsValue()、size()、isEmpty()等。 Map的實作Java中最常用的Map實作是HashMap和TreeMap。 HashMap是一個基於哈希表的Map實現,它透過計算鍵的雜湊值來快速找到和檢索值。 TreeMap是基於紅黑樹的Map實現,它以升序或降序對鍵

1.概覽Map是Java集合框架中的一員,以鍵值對形式儲存元素,允許快速檢索和修改資料。由於其強大的功能和廣泛的應用,掌握Map的遍歷方法是Java程式設計師必備技能。 2.遍歷方法Map提供了多種遍歷方式,每種方法各有優缺點,可依具體需求選擇。 3.keySet()遍歷keySet()方法傳回Map中所有鍵的集合,可透過迭代器或增強型for迴圈遍歷鍵,進而取得對應的值。 //使用keySet()遍歷MapMapmap=newHashMap();map.

JavaMap是一種資料結構,它允許您使用鍵值對來儲存資料。鍵是唯一的,而值可以是任何類型的資料。 Map可以透過多種方式進行實現,包括HashMap、TreeMap和ConcurrentHashMap。在企業級應用中,Map可以用於多種目的。例如,您可以使用Map:儲存使用者數據,例如姓名、電子郵件地址和密碼。儲存產品數據,例如名稱、價格和描述。儲存訂單數據,例如客戶姓名、地址和購買的商品。儲存快取數據,例如最近造訪過的網頁或資料庫查詢結果。 Map非常適合儲存複雜的資料結構。例如,您可以使用Ma

JavaMap是一種資料結構,它允許您使用鍵來儲存和檢索值。 Map中的鍵是唯一的,這意味著您不能使用相同的鍵儲存兩個值。 Map中的值可以是任何對象,包括其他Map。 Map在Java中有很多用途。例如,您可以使用Map來儲存使用者ID和密碼、產品ID和價格,或檔案名稱和檔案內容。 Map也非常適合在應用程式中儲存配置設定。 Java中有三種內建的Map實作:HashMap、TreeMap和LinkedHashMap。 HashMap是基於哈希表的Map實現,它是使用最廣泛的Map實作。 TreeMap是基於

JavaMap是一個非常有用的資料結構,可以用於各種應用場景。但有時,我們可能需要擴展或自訂Map來滿足特定需求,例如新增新的功能、改變遍歷順序或建立自訂序列化器。本文將介紹如何擴充和客製化JavaMap,幫助你打造專屬資料結構,滿足你的客製化需求。 1.擴充JavaMap擴充JavaMap最簡單的方法是建立一個新的類,繼承自java.util.Map介面。這個新類別可以新增新的方法或屬性,也可以覆寫Map介面中的方法。例如,我們可以建立一個新的Map類,並新增一個新的方法來計算鍵值對的總和:publ

Map的講解Map是一種資料結構,允許你儲存鍵值對,鍵是唯一的,值可以是任何類型的物件。 Map介面提供了儲存和檢索鍵值對的方法,以及允許你遍歷Map中的鍵值對。 Map的類型Java中Map有幾種不同的實現,最常見的是HashMap、TreeMap和LinkedHashMap。 HashMap:一個基於散列表的Map實現,具有快速查找、插入和刪除的特點,但它不是有序的,這意味著鍵值對的順序在Map中是任意決定的。 TreeMap:一個基於紅黑樹的Map實現,具有快速查找、插入和刪除的特點,並且它是帶有
