Java ConcurrentMap インターフェイス
Java ConcurrentMap インターフェイス
このチュートリアルでは、Java ConcurrentMap インターフェイスとそのメソッドについて学習します。
ConcurrentMap Java コレクション フレームワークのインターフェイスは、スレッド セーフなマップを提供します。つまり、マップ内のエントリの一貫性に影響を与えることなく、複数のスレッドが一度にマップにアクセスできます。
ConcurrentMap 同期マップとして知られています。
Map インターフェースを拡張します。
ConcurrentMap を実装するクラス
ConcurrentMap以降 はインターフェースなので、そこからオブジェクトを作成することはできません.
ConcurrentMap の機能を使用するには インターフェイス、クラス ConcurrentHashMap を使用する必要があります

ConcurrentMap の使用方法
ConcurrentMap を使用するには 、 java.util.concurrent.ConcurrentMap をインポートする必要があります 最初にパッケージ。パッケージをインポートしたら、次の方法で並行マップを作成できます。
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
上記のコードでは、numbers という名前の並行マップを作成しました。 .
ここで、
- キー - マップ内の各要素 (値) を関連付けるために使用される一意の識別子
- 値 - マップ内のキーによって関連付けられた要素
ConcurrentMap のメソッド
ConcurrentMap インターフェイスには Map のすべてのメソッドが含まれています インターフェース。 Mapだからです ConcurrentMap のスーパーインターフェースです
これらすべてのメソッドに加えて、ConcurrentMap に固有のメソッドを次に示します。
- putIfAbsent() - 指定されたキーがまだ値に関連付けられていない場合、指定されたキー/値をマップに挿入します。
- compute() - 指定されたキーと以前にマップされた値のエントリ (キー/値のマッピング) を計算します。
- computeIfAbsent() - キーがまだ値にマップされていない場合、指定されたキーの指定された関数を使用して値を計算します。
- computeIfPresent() - キーが指定された値に既にマップされている場合、指定されたキーの新しいエントリ (キー/値のマッピング) を計算します。
- forEach() - マップのすべてのエントリにアクセスし、指定されたアクションを実行する
- merge() - キーがすでに特定の値にマップされている場合、指定されたキーの古い値と新しい指定された値をマージします。キーがまだマッピングされていない場合、メソッドは単に指定された値をキーに関連付けます。
詳細については、Java ConcurrentMap (Java の公式ドキュメント) にアクセスしてください。
ConcurrentHashMap での ConcurrentMap の実装
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
class Main {
public static void main(String[] args) {
// Creating ConcurrentMap using ConcurrentHashMap
ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();
// Insert elements to map
numbers.put("Two", 2);
numbers.put("One", 1);
numbers.put("Three", 3);
System.out.println("ConcurrentMap: " + numbers);
// Access the value of specified key
int value = numbers.get("One");
System.out.println("Accessed Value: " + value);
// Remove the value of specified key
int removedValue = numbers.remove("Two");
System.out.println("Removed Value: " + removedValue);
}
}
出力
ConcurrentMap: {One=1, Two=2, Three=3}
Accessed Value: 1
Removed Value: 2
ConcurrentHashMap について詳しく知るには 、Java ConcurrentHashMap にアクセスしてください。
Java