Java中Map集合的常用方法(非常詳細!)
前言
Java 集合框架中的 Map 是一種非常常用的數(shù)據(jù)結(jié)構(gòu),它可以將 key 和 value 進行映射,并提供了豐富的操作方法和函數(shù)。在本文中,我們將介紹 Java 集合 Map 的常用方法,以便讓讀者更好地理解和運用它們。
1. put
put 方法是 Map 最基本也是最常用的方法之一,它用于向 Map 中添加一個鍵值對。如果添加的 key 已經(jīng)存在,則會覆蓋原來的 value 值。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("a", 3); System.out.println(map); // 輸出 {a=3, b=2}
在這個例子中,我們先將 "a" 對應(yīng)的 value 設(shè)置為 1,再將 "b" 對應(yīng)的 value 設(shè)置為 2。接著,我們又將 "a" 對應(yīng)的 value 設(shè)置為 3,由于 key 值的重復(fù),第二次 put 操作將會覆蓋掉原來的值,最終輸出結(jié)果為 {a=3, b=2}。
2. get
get 方法用于獲取指定 key 對應(yīng)的 value 值,如果 key 不存在,則返回 null。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); Integer value = map.get("a"); System.out.println(value); // 輸出 1
在這個例子中,我們通過 get 方法獲取了 key 為 "a" 的 value 值,并輸出結(jié)果為 1。
3. remove
remove 方法用于刪除指定 key 對應(yīng)的鍵值對。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); System.out.println(map); // 輸出 {a=1, b=2} map.remove("a"); System.out.println(map); // 輸出 {b=2}
在這個例子中,我們通過 remove 方法刪除了 key 為 "a" 的鍵值對,并將結(jié)果輸出為 {b=2}。注意,如果 key 不存在,則 remove 方法不會產(chǎn)生任何影響。
4. containsKey 和 containsValue
containsKey 和 containsValue 方法分別用于判斷 Map 中是否包含指定的 key 或 value 值。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); boolean hasA = map.containsKey("a"); boolean hasC = map.containsKey("c"); boolean hasValue2 = map.containsValue(2); boolean hasValue3 = map.containsValue(3); System.out.println(hasA); // 輸出 true System.out.println(hasC); // 輸出 false System.out.println(hasValue2); // 輸出 true System.out.println(hasValue3); // 輸出 false
在這個例子中,我們先向 Map 中添加了兩個鍵值對,然后分別使用 containsKey 和 containsValue 方法來判斷是否包含指定的 key 或 value 值,并將結(jié)果輸出。
5. keySet 和 values
keySet 方法返回 Map 中所有 key 的集合,values 方法返回 Map 中所有 value 的集合。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); Set<String> keySet = map.keySet(); Collection<Integer> values = map.values(); System.out.println(keySet); // 輸出 [a, b, c] System.out.println(values); // 輸出 [1, 2, 3]
在這個例子中,我們先向 Map 中添加了兩個鍵值對,然后分別使用 keySet 和 values 方法來獲取所有的 key 和 value 值,并將結(jié)果輸出。
6. entrySet
entrySet 方法返回 Map 中所有鍵值對的集合。每一個元素都是一個 Map.Entry 對象,其中包含一個 key 和一個 value。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); Set<Map.Entry<String, Integer>> entries = map.entrySet(); for (Map.Entry<String, Integer> entry : entries) { System.out.println(entry.getKey() + ": " + entry.getValue()); }
在這個例子中,我們先向 Map 中添加了兩個鍵值對,然后使用 entrySet 方法獲取所有的鍵值對,并通過 for 循環(huán)逐一輸出每一個元素的 key 和 value 值。
7. size 和 isEmpty
size 方法返回 Map 中鍵值對的數(shù)量,isEmpty 方法判斷 Map 是否為空。示例如下:
Map<String, Integer> map = new HashMap<>(); System.out.println(map.size()); // 輸出 0 System.out.println(map.isEmpty()); // 輸出 true map.put("a", 1); System.out.println(map.size()); // 輸出 1 System.out.println(map.isEmpty()); // 輸出 false
在這個例子中,我們先創(chuàng)建了一個空的 Map 對象,并使用 size 和 isEmpty 方法檢查它們的狀態(tài)。接著,我們向 Map 中添加了一個鍵值對,并再次使用 size 和 isEmpty 方法檢查狀態(tài)。最終輸出結(jié)果為 0、true、1 和 false。
8. clear
clear 方法用于清空 Map 中所有的鍵值對。示例如下:
Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); System.out.println(map); // 輸出 {a=1, b=2} map.clear(); System.out.println(map); // 輸出 {}
在這個例子中,我們先向 Map 中添加了兩個鍵值對,并將其輸出。接著,我們使用 clear 方法清空了 Map 中所有的鍵值對,并將其輸出為空集合。
附:java 如何獲取map的長度
import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapLengthExample { public static void main(String[] args) { // 創(chuàng)建Map實例 Map<String, Integer> map = new HashMap<>(); // 添加鍵值對 map.put("A", 1); map.put("B", 2); map.put("C", 3); // 方法一:使用size()方法 int size1 = map.size(); System.out.println("Map的長度(方法一):" + size1); // 方法二:使用isEmpty()方法判斷是否為空 if (map.isEmpty()) { System.out.println("Map為空"); } else { int size2 = map.size(); System.out.println("
總結(jié)
Java 集合框架中的 Map 提供了非常豐富的操作方法,可以幫助我們方便地管理和操作 key 和 value 的映射關(guān)系。在實際項目開發(fā)中,我們需要根據(jù)具體的需求選擇不同的 Map 實現(xiàn)類,比如 HashMap、TreeMap、LinkedHashMap 和 ConcurrentHashMap 等,并根據(jù)實際情況使用不同的方法來完成所需的功能。
此外,值得注意的是,如果我們在使用 Map 時沒有特別指明具體實現(xiàn)類,則默認情況下會使用 HashMap。但是,在多線程環(huán)境下,由于 HashMap 是非線程安全的,可能會出現(xiàn)并發(fā)修改和死鎖等問題。因此,建議在多線程環(huán)境下使用 ConcurrentHashMap 或者 Collections.synchronizedMap 方法創(chuàng)建線程安全的 Map 對象。
另外,Java 8 中引入了 Stream API,可以方便地對 Map 進行操作和處理。例如,我們可以將 Map 轉(zhuǎn)換為流對象,然后使用 filter、map、reduce 等方法進行數(shù)據(jù)篩選、轉(zhuǎn)換和聚合等操作。
到此這篇關(guān)于Java中Map集合的常用方法的文章就介紹到這了,更多相關(guān)Java Map集合方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過端口1433連接到主機127.0.0.1的 TCP/IP 連接失敗,錯誤:“connect timed out”的解
這篇文章主要介紹了通過端口1433連接到主機127.0.0.1的 TCP/IP 連接失敗,錯誤:“connect timed out”的解決方法,需要的朋友可以參考下2015-08-08JAVA使用hutool工具實現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū))
今天通過本文給大家分享JAVA使用hutool工具實現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū)),代碼分為表結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08RocketMq同組消費者如何自動設(shè)置InstanceName
這篇文章主要介紹了RocketMq同組消費者如何自動設(shè)置InstanceName問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06詳解Spring中實現(xiàn)接口動態(tài)的解決方法
最近在工作遇到的一個,發(fā)現(xiàn)網(wǎng)上的資料較少,所以想著總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于Spring中實現(xiàn)接口動態(tài)的解決方法,文中通過完整的示例代碼給大家介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07SpringBoot favicon Chrome設(shè)置問題解決方案
在本篇文章里小編給大家分享的是關(guān)于SpringBoot favicon Chrome設(shè)置問題實例內(nèi)容,小的朋友們可以參考學(xué)習(xí)下。2020-02-02