最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map集合的常用方法(非常詳細(xì)!)

 更新時(shí)間:2024年01月30日 08:25:04   作者:寶爺~  
Java中的Map是一種鍵值對(duì)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),它提供了快速查找和訪問(wèn)數(shù)據(jù)的能力,下面這篇文章主要給大家介紹了關(guān)于Java中Map集合的常用方法,需要的朋友可以參考下

前言

Java 集合框架中的 Map 是一種非常常用的數(shù)據(jù)結(jié)構(gòu),它可以將 key 和 value 進(jìn)行映射,并提供了豐富的操作方法和函數(shù)。在本文中,我們將介紹 Java 集合 Map 的常用方法,以便讓讀者更好地理解和運(yùn)用它們。

1. put

put 方法是 Map 最基本也是最常用的方法之一,它用于向 Map 中添加一個(gè)鍵值對(duì)。如果添加的 key 已經(jīng)存在,則會(huì)覆蓋原來(lái)的 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}

在這個(gè)例子中,我們先將 "a" 對(duì)應(yīng)的 value 設(shè)置為 1,再將 "b" 對(duì)應(yīng)的 value 設(shè)置為 2。接著,我們又將 "a" 對(duì)應(yīng)的 value 設(shè)置為 3,由于 key 值的重復(fù),第二次 put 操作將會(huì)覆蓋掉原來(lái)的值,最終輸出結(jié)果為 {a=3, b=2}。

2. get

get 方法用于獲取指定 key 對(duì)應(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

 在這個(gè)例子中,我們通過(guò) get 方法獲取了 key 為 "a" 的 value 值,并輸出結(jié)果為 1。

3. remove

remove 方法用于刪除指定 key 對(duì)應(yīng)的鍵值對(duì)。示例如下:

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}

在這個(gè)例子中,我們通過(guò) remove 方法刪除了 key 為 "a" 的鍵值對(duì),并將結(jié)果輸出為 {b=2}。注意,如果 key 不存在,則 remove 方法不會(huì)產(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

在這個(gè)例子中,我們先向 Map 中添加了兩個(gè)鍵值對(duì),然后分別使用 containsKey 和 containsValue 方法來(lái)判斷是否包含指定的 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]

在這個(gè)例子中,我們先向 Map 中添加了兩個(gè)鍵值對(duì),然后分別使用 keySet 和 values 方法來(lái)獲取所有的 key 和 value 值,并將結(jié)果輸出。

6. entrySet

entrySet 方法返回 Map 中所有鍵值對(duì)的集合。每一個(gè)元素都是一個(gè) Map.Entry 對(duì)象,其中包含一個(gè) key 和一個(gè) 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());
}

在這個(gè)例子中,我們先向 Map 中添加了兩個(gè)鍵值對(duì),然后使用 entrySet 方法獲取所有的鍵值對(duì),并通過(guò) for 循環(huán)逐一輸出每一個(gè)元素的 key 和 value 值。

7. size 和 isEmpty

size 方法返回 Map 中鍵值對(duì)的數(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

在這個(gè)例子中,我們先創(chuàng)建了一個(gè)空的 Map 對(duì)象,并使用 size 和 isEmpty 方法檢查它們的狀態(tài)。接著,我們向 Map 中添加了一個(gè)鍵值對(duì),并再次使用 size 和 isEmpty 方法檢查狀態(tài)。最終輸出結(jié)果為 0、true、1 和 false。

8. clear

clear 方法用于清空 Map 中所有的鍵值對(duì)。示例如下:

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); // 輸出 {}

在這個(gè)例子中,我們先向 Map 中添加了兩個(gè)鍵值對(duì),并將其輸出。接著,我們使用 clear 方法清空了 Map 中所有的鍵值對(duì),并將其輸出為空集合。

附:java 如何獲取map的長(zhǎng)度

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapLengthExample {
    public static void main(String[] args) {
        // 創(chuàng)建Map實(shí)例
        Map<String, Integer> map = new HashMap<>();
        
        // 添加鍵值對(duì)
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);
        
        // 方法一:使用size()方法
        int size1 = map.size();
        System.out.println("Map的長(zhǎng)度(方法一):" + size1);
        
        // 方法二:使用isEmpty()方法判斷是否為空
        if (map.isEmpty()) {
            System.out.println("Map為空");
        } else {
            int size2 = map.size();
            System.out.println("

總結(jié)

Java 集合框架中的 Map 提供了非常豐富的操作方法,可以幫助我們方便地管理和操作 key 和 value 的映射關(guān)系。在實(shí)際項(xiàng)目開(kāi)發(fā)中,我們需要根據(jù)具體的需求選擇不同的 Map 實(shí)現(xiàn)類(lèi),比如 HashMap、TreeMap、LinkedHashMap 和 ConcurrentHashMap 等,并根據(jù)實(shí)際情況使用不同的方法來(lái)完成所需的功能。

此外,值得注意的是,如果我們?cè)谑褂?Map 時(shí)沒(méi)有特別指明具體實(shí)現(xiàn)類(lèi),則默認(rèn)情況下會(huì)使用 HashMap。但是,在多線程環(huán)境下,由于 HashMap 是非線程安全的,可能會(huì)出現(xiàn)并發(fā)修改和死鎖等問(wèn)題。因此,建議在多線程環(huán)境下使用 ConcurrentHashMap 或者 Collections.synchronizedMap 方法創(chuàng)建線程安全的 Map 對(duì)象。

另外,Java 8 中引入了 Stream API,可以方便地對(duì) Map 進(jìn)行操作和處理。例如,我們可以將 Map 轉(zhuǎn)換為流對(duì)象,然后使用 filter、map、reduce 等方法進(jìn)行數(shù)據(jù)篩選、轉(zhuǎn)換和聚合等操作。

到此這篇關(guān)于Java中Map集合的常用方法的文章就介紹到這了,更多相關(guān)Java Map集合方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java算法之冒泡排序?qū)嵗a

    Java算法之冒泡排序?qū)嵗a

    今天小編就為大家分享一篇關(guān)于Java算法之冒泡排序?qū)嵗a,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Java IText異常NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable的解決方法

    Java IText異常NoClassDefFoundError: org/bouncycastle

    在使用Java進(jìn)行PDF文檔操作時(shí),iText是一個(gè)非常強(qiáng)大的庫(kù),然而,在實(shí)際開(kāi)發(fā)過(guò)程中,可能會(huì)遇到一些異常情況,其中之一就是??NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable??,本文將探討這個(gè)錯(cuò)誤的原因及其解決方案,需要的朋友可以參考下
    2025-02-02
  • java 序列化對(duì)象 serializable 讀寫(xiě)數(shù)據(jù)的實(shí)例

    java 序列化對(duì)象 serializable 讀寫(xiě)數(shù)據(jù)的實(shí)例

    java 序列化對(duì)象 serializable 讀寫(xiě)數(shù)據(jù)的實(shí)例,需要的朋友可以參考一下
    2013-03-03
  • 解決mybatis 中collection嵌套collection引發(fā)的bug

    解決mybatis 中collection嵌套collection引發(fā)的bug

    這篇文章主要介紹了解決mybatis 中collection嵌套collection引發(fā)的bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 解讀Java和JavaScript區(qū)別與聯(lián)系

    解讀Java和JavaScript區(qū)別與聯(lián)系

    這篇文章主要介紹了解讀Java和JavaScript區(qū)別與聯(lián)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java如何使用字符流讀寫(xiě)非文本文件

    Java如何使用字符流讀寫(xiě)非文本文件

    這篇文章主要介紹了Java如何使用字符流讀寫(xiě)非文本文件,以Java的字符流讀取文件為例:它只能讀取0-65535之間的字符,可以看出來(lái)字符都是正數(shù),但是二進(jìn)制的byte是可以為負(fù)數(shù)的,需要的朋友可以參考下
    2023-04-04
  • Spring事務(wù)失效的9大場(chǎng)景與解決方法

    Spring事務(wù)失效的9大場(chǎng)景與解決方法

    在日常開(kāi)發(fā)中,我們經(jīng)常使用Spring事務(wù),這篇文章主要來(lái)和大家聊聊Spring事務(wù)失效的 9 種場(chǎng)景,并提供了相應(yīng)的解決方法,有需要的小伙伴可以參考一下
    2025-04-04
  • MyEclipse開(kāi)發(fā)一個(gè)webservice接口

    MyEclipse開(kāi)發(fā)一個(gè)webservice接口

    這篇文章主要為大家詳細(xì)介紹了MyEclipse開(kāi)發(fā)一個(gè)webservice接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java調(diào)用Coze?API詳細(xì)實(shí)現(xiàn)步驟

    Java調(diào)用Coze?API詳細(xì)實(shí)現(xiàn)步驟

    Coze是一款由字節(jié)跳動(dòng)推出的低代碼AI開(kāi)發(fā)平臺(tái),讓非專(zhuān)業(yè)開(kāi)發(fā)者也能輕松創(chuàng)建智能應(yīng)用,這篇文章主要介紹了Java調(diào)用Coze?API的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-01-01
  • SpringBoot超詳細(xì)深入講解底層原理

    SpringBoot超詳細(xì)深入講解底層原理

    我們知道springboot內(nèi)部是通過(guò)spring框架內(nèi)嵌Tomcat實(shí)現(xiàn)的,當(dāng)然也可以?xún)?nèi)嵌jetty,undertow等等web框架;另外springboot還有一個(gè)特別重要的功能就是自動(dòng)裝配,這又是如何實(shí)現(xiàn)的呢
    2022-07-07

最新評(píng)論

通州市| 山阴县| 津市市| 梁河县| 铜陵市| 鲁甸县| 南通市| 文登市| 兴安县| 中阳县| 祁门县| 泰安市| 安阳县| 铁岭市| 漠河县| 广水市| 黎川县| 洪江市| 治县。| 松溪县| 安丘市| 夏津县| 宁化县| 九龙县| 枝江市| 永新县| 杭锦后旗| 上杭县| 讷河市| 洮南市| 二手房| 工布江达县| 原平市| 蒲城县| 镇平县| 霍林郭勒市| 吴旗县| 湘阴县| 壶关县| 西林县| 屯留县|