亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java ConcurrentMap 接口

在本教程中,我們將學(xué)習(xí)Java ConcurrentMap接口及其方法。

Java集合框架的ConcurrentMap接口提供了線程安全的映射。 也就是說,多個(gè)線程可以一次訪問該映射,而不會(huì)影響映射中條目的一致性。

ConcurrentMap 被稱為同步map。

它繼承了Map接口。

實(shí)現(xiàn)ConcurrentMap的類

由于ConcurrentMap是接口,因此無法從中創(chuàng)建對(duì)象。

為了使用ConcurrentMap接口的功能,我們需要使用實(shí)現(xiàn)該接口的類ConcurrentHashMap。

Java ConcurrentHashMap接口擴(kuò)展了Java ConcurrentMap接口。

如何使用ConcurrentMap?

要使用ConcurrentMap,我們必須先導(dǎo)入java.util.concurrent.ConcurrentMap軟件包。導(dǎo)入包后,將按照以下方法創(chuàng)建并發(fā)映射。

// ConcurrentHashMap類的使用
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();

在上面的代碼中,我們創(chuàng)建了一個(gè)名為numbers的ConcurrentMap。

這里,

  • Key - 用于關(guān)聯(lián)map中每個(gè)元素(值)的唯一標(biāo)識(shí)符

  • Value - map中與鍵相關(guān)聯(lián)的元素

ConcurrentMap的方法

ConcurrentMap接口包含Map接口的所有方法。 這是因?yàn)镸ap是ConcurrentMap接口的超級(jí)接口。

除了所有這些方法,以下是特定于ConcurrentMap接口的方法。

  • putIfAbsent() - 如果指定的鍵尚未與任何值關(guān)聯(lián),則將指定的鍵/值插入到映射中。

  • compute() - 計(jì)算指定鍵及其先前映射值的條目(鍵/值映射)。

  • computeIfAbsent() - 如果鍵尚未與任何值映射,則使用指定函數(shù)為指定鍵計(jì)算一個(gè)值。

  • computeIfPresent() - 如果已使用指定值映射鍵,則為指定鍵計(jì)算新條目(鍵/值映射)。

  • forEach() - 訪問map的所有條目并執(zhí)行指定的操作。

  • merge() -如果指定鍵已經(jīng)映射到某個(gè)值,則將指定的新值與指定鍵的舊值合并。如果鍵還沒有映射,該方法將指定的值與鍵關(guān)聯(lián)。

ConcurrentHashMap中ConcurrentMap的實(shí)現(xiàn)

import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;

class Main {

    public static void main(String[] args) {
        //使用ConcurrentHashMap創(chuàng)建ConcurrentMap
        ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();

        // 插入元素到map
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("ConcurrentMap: " + numbers);

        //訪問指定的鍵
        int value = numbers.get("One");
        System.out.println("被訪問的值: " + value);

        //刪除指定鍵的值
        int removedValue = numbers.remove("Two");
        System.out.println("被刪除的值: " + removedValue);
    }
}

輸出結(jié)果

ConcurrentMap: {One=1, Two=2, Three=3}
被訪問的值: 1
被刪除的值: 2

要了解更多信息ConcurrentHashMap,請(qǐng)?jiān)L問Java ConcurrentHashMap。