Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向對象(I)

Java 面向對象(II)

Java 面向對象(III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java ConcurrentMap 接口

在本教程中,我們將學習Java ConcurrentMap接口及其方法。

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

ConcurrentMap 被稱為同步map。

它繼承了Map接口。

實現(xiàn)ConcurrentMap的類

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

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

Java ConcurrentHashMap接口擴展了Java ConcurrentMap接口。

如何使用ConcurrentMap?

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

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

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

這里,

  • Key - 用于關聯(lián)map中每個元素(值)的唯一標識符

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

ConcurrentMap的方法

ConcurrentMap接口包含Map接口的所有方法。 這是因為Map是ConcurrentMap接口的超級接口。

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

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

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

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

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

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

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

ConcurrentHashMap中ConcurrentMap的實現(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);
    }
}

輸出結果

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

要了解更多信息ConcurrentHashMap,請訪問Java ConcurrentHashMap。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清