V tomto výučbe sa dozvieme o rozhraní Java ConcurrentMap a jeho metódach.
ConcurrentMap
Rozhranie zbierok rámca Java poskytuje thread-safe mapu. To znamená, že na mapu môže naraz pristupovať viac vlákien bez toho, aby to ovplyvnilo konzistenciu záznamov na mape.
ConcurrentMap
je známa ako synchronizovaná mapa.
Rozširuje rozhranie mapy.
Trieda, ktorá implementuje ConcurrentMap
Pretože ConcurrentMap
je to rozhranie, nemôžeme z neho vytvárať objekty.
Aby sme mohli využívať funkcie ConcurrentMap
rozhrania, musíme použiť triedu, ConcurrentHashMap
ktorá ho implementuje.
Ako používať ConcurrentMap?
Ak ho chcete použiť ConcurrentMap
, musíme najskôr importovať java.util.concurrent.ConcurrentMap
balík. Po importovaní balíka môžeme vytvoriť súbežnú mapu nasledujúcim spôsobom.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
Vo vyššie uvedenom kóde sme vytvorili súbežnú mapu s názvom čísla.
Tu,
- Kľúč - jedinečný identifikátor, ktorý sa používa na priradenie každého prvku (hodnoty) k mape
- Hodnota - prvky spojené s klávesmi na mape
Metódy ConcurrentMap
ConcurrentMap
Rozhranie zahŕňa všetky metódy Map
rozhrania. Je to preto, že Map
je super rozhraním tohto ConcurrentMap
rozhrania.
Okrem všetkých týchto metód sú tu aj metódy špecifické pre dané ConcurrentMap
rozhranie.
- putIfAbsent () - Vloží zadaný kľúč / hodnotu do mapy, ak zadaný kľúč ešte nie je priradený k žiadnej hodnote.
- compute () - Vypočíta položku (mapovanie kľúča / hodnoty) pre zadaný kľúč a jeho predtým namapovanú hodnotu.
- computeIfAbsent () - Vypočíta hodnotu pomocou zadanej funkcie pre zadaný kľúč, ak kľúč ešte nie je namapovaný na žiadnu hodnotu.
- computeIfPresent () - Vypočíta nový záznam (mapovanie kľúča / hodnoty) pre zadaný kľúč, ak je kľúč už mapovaný so zadanou hodnotou.
- forEach () - Prístup k všetkým položkám mapy a vykonávanie zadaných akcií.
- merge () - Zlúči novú zadanú hodnotu so starou hodnotou zadaného kľúča, ak je kľúč už namapovaný na určitú hodnotu. Ak kľúč ešte nie je namapovaný, metóda jednoducho priradí zadanú hodnotu nášmu kľúču.
Ak sa chcete dozvedieť viac, navštívte stránku Java ConcurrentMap (oficiálna dokumentácia Java).
Implementácia ConcurrentMap v 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); ) )
Výkon
ConcurrentMap: (Jeden = 1, Dva = 2, Tri = 3) Prístupná hodnota: 1 Odstránená hodnota: 2
Ak sa chcete dozvedieť viac ConcurrentHashMap
, navštívte stránku Java ConcurrentHashMap.