Interface Java ConcurrentMap
Interface Java ConcurrentMap
Dans ce didacticiel, nous découvrirons l'interface Java ConcurrentMap et ses méthodes.
Le ConcurrentMap
L'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
Depuis le ConcurrentMap
est une interface, nous ne pouvons pas créer d'objets à partir de celle-ci.
Afin d'utiliser les fonctionnalités du ConcurrentMap
interface, nous devons utiliser la classe ConcurrentHashMap
qui l'implémente.
Comment utiliser ConcurrentMap ?
Pour utiliser le ConcurrentMap
, il faut importer le java.util.concurrent.ConcurrentMap
paquet d'abord. Une fois le package importé, voici comment créer une carte simultanée.
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
Dans le code ci-dessus, nous avons créé une carte simultanée nommée numbers .
Ici,
- Clé - un identifiant unique utilisé pour associer chaque élément (valeur) dans une carte
- Valeur - éléments associés par clés dans une carte
Méthodes de ConcurrentMap
Le ConcurrentMap
l'interface inclut toutes les méthodes du Map
interface. C'est parce que Map
est la super interface du ConcurrentMap
interface.
En plus de toutes ces méthodes, voici les méthodes spécifiques au ConcurrentMap
interface.
- putIfAbsent() - Insère la clé/valeur spécifiée dans la carte si la clé spécifiée n'est pas déjà associée à une valeur.
- calculer() - 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éder à toutes les entrées d'une carte et effectuer les actions spécifiées.
- fusionner() - 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 officielle de Java).
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<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);
}
}
Sortie
ConcurrentMap: {One=1, Two=2, Three=3} Accessed Value: 1 Removed Value: 2
Pour en savoir plus sur ConcurrentHashMap
, visitez Java ConcurrentHashMap.
Java