English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java Liste (List)

Java Queue (file d'attente)

Java Map collectif

Java Set collectif

Java entrée/sortie (I/O)

Java Reader/Writer

Autres sujets Java

L'interface ConcurrentMap Java

Dans ce tutoriel, nous allons étudier l'interface ConcurrentMap Java et ses méthodes.

L'interface ConcurrentMap de la framework de collections Java fournit des mappings thread-sécurisés. Autrement dit, plusieurs threads peuvent accéder à ce mapping en même temps sans affecter l'uniformité des entrées du mapping.

ConcurrentMap est appelé map synchronisée.

Elle hérite deL'interface Map.

Les classes implémentant ConcurrentMap

Comme ConcurrentMap est une interface, on ne peut pas en créer d'objets.

Pour utiliser les fonctionnalités de l'interface ConcurrentMap, nous devons utiliser la classe ConcurrentMap implémentant cette interface, à savoir ConcurrentHashMap.

Comment utiliser ConcurrentMap ?

Pour utiliser ConcurrentMap, nous devons d'abord importer le paquet java.util.concurrent.ConcurrentMap. Après avoir importé le paquet, nous créerons une carte concurrente suivant les méthodes suivantes.

// Utilisation de la classe ConcurrentHashMap
ConcurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();

Dans le code ci-dessus, nous avons créé un ConcurrentMap nommé numbers.

Ici,

  • Key - Identifiant unique utilisé pour associer chaque élément (valeur) de la map

  • Value - Élément associé à la clé dans la map

Méthodes de ConcurrentMap

L'interface ConcurrentMap contient toutes les méthodes de l'interface Map. Cela est dû au fait que Map est le super-interfaces de l'interface ConcurrentMap.

En plus de toutes ces méthodes, voici les méthodes spécifiques à l'interface ConcurrentMap.

  • putIfAbsent() - Si la clé spécifiée n'est pas encore associée à aucune valeur, alors insérer la clé spécifiée/La valeur est insérée dans la map.

  • compute() - Calculer l'entrée pour la clé spécifiée et la valeur précédemment mappée (clé/Mapping de valeurs).

  • computeIfAbsent() - Si la clé n'a pas encore été mappée à aucune valeur, calculer une valeur pour la clé spécifiée en utilisant la fonction spécifiée.

  • computeIfPresent() - Si la clé spécifiée a déjà été mappée à une valeur spécifiée, calculer un nouveau champ pour la clé spécifiée (clé/Mapping de valeurs).

  • forEach() - Accéder à toutes les entrées de la map et exécuter l'opération spécifiée.

  • merge() -Si la clé spécifiée est déjà mappée à une certaine valeur, alors fusionner la nouvelle valeur spécifiée avec l'ancienne valeur de la clé spécifiée. Si la clé n'est pas encore mappée, cette méthode associera la valeur spécifiée à la clé.

Implémentation de ConcurrentMap dans ConcurrentHashMap

import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
class Main {
    public static void main(String[] args) {
        //Utilisation de ConcurrentHashMap pour créer un ConcurrentMap
        ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();
        // Insert elements into map
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("ConcurrentMap: ", + numbers);
        //Access the specified key
        int value = numbers.get("One");
        System.out.println("Visited value: ", + value);
        //Delete the value of the specified key
        int removedValue = numbers.remove("Two");
        System.out.println("Deleted value: ", + removedValue);
    }
}

Output result

ConcurrentMap: {One=1, Two=2, Three=3}
Visited value: 1
Deleted value: 2

To learn more about ConcurrentHashMap, please visitJava ConcurrentHashMap.