Dans ce didacticiel, nous allons découvrir l'interface Java ConcurrentMap et ses méthodes.
L' ConcurrentMap
interface du framework de collections Java fournit une carte thread-safe. Autrement dit, plusieurs threads peuvent accéder à la carte à la fois sans affecter la cohérence des entrées dans une carte.
ConcurrentMap
est connue sous le nom de carte synchronisée.
Il étend l'interface de la carte.
Classe qui implémente ConcurrentMap
Puisqu'il ConcurrentMap
s'agit d'une interface, nous ne pouvons pas créer d'objets à partir de celle-ci.
Afin d'utiliser les fonctionnalités de l' ConcurrentMap
interface, nous devons utiliser la classe ConcurrentHashMap
qui l'implémente.
Comment utiliser ConcurrentMap?
Pour utiliser le ConcurrentMap
, nous devons d'abord importer le java.util.concurrent.ConcurrentMap
package. Une fois que nous avons importé le package, voici comment créer une carte simultanée.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Dans le code ci-dessus, nous avons créé une carte simultanée nommée nombres.
Ici,
- Clé - un identifiant unique utilisé pour associer chaque élément (valeur) dans une carte
- Valeur - éléments associés par des clés dans une carte
Méthodes de ConcurrentMap
L' ConcurrentMap
interface comprend toutes les méthodes de l' Map
interface. C'est parce que Map
c'est la super interface de l' ConcurrentMap
interface.
Outre toutes ces méthodes, voici les méthodes spécifiques à l' ConcurrentMap
interface.
- putIfAbsent () - Insère la clé / valeur spécifiée dans la carte si la clé spécifiée n'est déjà associée à aucune valeur.
- compute () - Calcule une entrée (mappage clé / valeur) pour la clé spécifiée et sa valeur précédemment mappée.
- computeIfAbsent () - Calcule une valeur à l'aide de la fonction spécifiée pour la clé spécifiée si la clé n'est pas déjà mappée avec une valeur.
- computeIfPresent () - Calcule une nouvelle entrée (mappage clé / valeur) pour la clé spécifiée si la clé est déjà mappée avec la valeur spécifiée.
- forEach () - Accédez à toutes les entrées d'une carte et effectuez les actions spécifiées.
- merge () - Fusionne la nouvelle valeur spécifiée avec l'ancienne valeur de la clé spécifiée si la clé est déjà mappée à une certaine valeur. Si la clé n'est pas déjà mappée, la méthode associe simplement la valeur spécifiée à notre clé.
Pour en savoir plus, visitez Java ConcurrentMap (documentation Java officielle).
Implémentation de ConcurrentMap dans ConcurrentHashMap
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap 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); ) )
Production
ConcurrentMap: (One = 1, Two = 2, Three = 3) Valeur consultée: 1 Valeur supprimée: 2
Pour en savoir plus ConcurrentHashMap
, visitez Java ConcurrentHashMap.