In questo tutorial impareremo a conoscere l'interfaccia Java ConcurrentMap e i suoi metodi.
L' ConcurrentMap
interfaccia del framework delle collezioni Java fornisce una mappa thread-safe. Cioè, più thread possono accedere alla mappa contemporaneamente senza influire sulla coerenza delle voci in una mappa.
ConcurrentMap
è nota come mappa sincronizzata.
Estende l'interfaccia della mappa.
Classe che implementa ConcurrentMap
Poiché ConcurrentMap
è un'interfaccia, non possiamo creare oggetti da essa.
Per poter utilizzare le funzionalità ConcurrentMap
dell'interfaccia, dobbiamo usare la classe ConcurrentHashMap
che la implementa.
Come utilizzare ConcurrentMap?
Per utilizzare ConcurrentMap
, dobbiamo java.util.concurrent.ConcurrentMap
prima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare una mappa simultanea.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Nel codice precedente, abbiamo creato una mappa simultanea denominata numeri.
Qui,
- Chiave: un identificatore univoco utilizzato per associare ogni elemento (valore) in una mappa
- Valore: elementi associati da chiavi in una mappa
Metodi di ConcurrentMap
L' ConcurrentMap
interfaccia include tutti i metodi Map
dell'interfaccia. È perché Map
è la super interfaccia ConcurrentMap
dell'interfaccia.
Oltre a tutti questi metodi, ecco i metodi specifici ConcurrentMap
dell'interfaccia.
- putIfAbsent () - Inserisce la chiave / valore specificato nella mappa se la chiave specificata non è già associata a nessun valore.
- compute () - Calcola una voce (mappatura chiave / valore) per la chiave specificata e il suo valore mappato in precedenza.
- computeIfAbsent () - Calcola un valore utilizzando la funzione specificata per la chiave specificata se la chiave non è già mappata con alcun valore.
- computeIfPresent () - Calcola una nuova voce (mappatura chiave / valore) per la chiave specificata se la chiave è già mappata con il valore specificato.
- forEach () - Accedi a tutte le voci di una mappa ed esegue le azioni specificate.
- merge () - Unisce il nuovo valore specificato con il vecchio valore della chiave specificata se la chiave è già mappata a un certo valore. Se la chiave non è già mappata, il metodo associa semplicemente il valore specificato alla nostra chiave.
Per saperne di più, visita Java ConcurrentMap (documentazione Java ufficiale).
Implementazione di ConcurrentMap in 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); ) )
Produzione
ConcurrentMap: (Uno = 1, Due = 2, Tre = 3) Valore a cui si accede: 1 Valore rimosso: 2
Per saperne di più ConcurrentHashMap
, visita Java ConcurrentHashMap.