În acest tutorial, vom afla despre interfața Java ConcurrentMap și metodele sale.
ConcurrentMap
Interfața cadrului colecțiilor Java oferă o hartă thread - safe. Adică, mai multe fire pot accesa harta simultan fără a afecta consistența intrărilor pe hartă.
ConcurrentMap
este cunoscută sub numele de hartă sincronizată.
Extinde interfața Hartă.
Clasă care implementează ConcurrentMap
Deoarece ConcurrentMap
este o interfață, nu putem crea obiecte din ea.
Pentru a utiliza funcționalitățile ConcurrentMap
interfeței, trebuie să folosim clasa ConcurrentHashMap
care o implementează.
Cum se utilizează ConcurrentMap?
Pentru a utiliza ConcurrentMap
, trebuie să importăm mai java.util.concurrent.ConcurrentMap
întâi pachetul. Odată ce am importat pachetul, iată cum putem crea o hartă concurentă.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
În codul de mai sus, am creat o hartă simultană numită numere.
Aici,
- Cheie - un identificator unic utilizat pentru a asocia fiecare element (valoare) pe o hartă
- Valoare - elemente asociate tastelor dintr-o hartă
Metode ale ConcurrentMap
ConcurrentMap
Interfața include toate metodele Map
interfeței. Este pentru că Map
este super-interfața ConcurrentMap
interfeței.
Pe lângă toate aceste metode, iată metodele specifice ConcurrentMap
interfeței.
- putIfAbsent () - Inserează cheia / valoarea specificată pe hartă dacă cheia specificată nu este deja asociată cu nicio valoare.
- compute () - Calculează o intrare (mapare cheie / valoare) pentru cheia specificată și valoarea sa mapată anterior.
- computeIfAbsent () - Calculează o valoare utilizând funcția specificată pentru cheia specificată dacă cheia nu este deja mapată cu vreo valoare.
- computeIfPresent () - Calculează o nouă intrare (mapare cheie / valoare) pentru cheia specificată dacă cheia este deja mapată cu valoarea specificată.
- forEach () - Accesați toate intrările unei hărți și efectuați acțiunile specificate.
- merge () - Fuzionează noua valoare specificată cu vechea valoare a cheii specificate dacă cheia este deja mapată la o anumită valoare. Dacă cheia nu este deja mapată, metoda pur și simplu asociază valoarea specificată cu cheia noastră.
Pentru a afla mai multe, vizitați Java ConcurrentMap (documentație oficială Java).
Implementarea ConcurrentMap în 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); ) )
Ieșire
ConcurrentMap: (One = 1, Two = 2, Three = 3) Valoare accesată: 1 Valoare eliminată: 2
Pentru a afla mai multe despre ConcurrentHashMap
, vizitați Java ConcurrentHashMap.