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