Java ConcurrentMap-interface

In deze zelfstudie leren we over de Java ConcurrentMap-interface en zijn methoden.

De ConcurrentMapinterface van het Java-verzamelingsraamwerk biedt een threadveilige kaart. Dat wil zeggen dat meerdere threads tegelijk toegang hebben tot de kaart zonder de consistentie van items op een kaart te beïnvloeden.

ConcurrentMap staat bekend als een gesynchroniseerde kaart.

Het breidt de kaartinterface uit.

Klasse die ConcurrentMap implementeert

Omdat het ConcurrentMapeen interface is, kunnen we er geen objecten van maken.

Om de functionaliteiten van de ConcurrentMapinterface te gebruiken, moeten we de klasse gebruiken ConcurrentHashMapdie deze implementeert.

Hoe gebruik ik ConcurrentMap?

Om de te gebruiken ConcurrentMap, moeten we eerst het java.util.concurrent.ConcurrentMappakket importeren . Nadat we het pakket hebben geïmporteerd, kunnen we als volgt een gelijktijdige kaart maken.

 // ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap(); 

In de bovenstaande code hebben we een gelijktijdige kaart gemaakt met de naam nummers.

Hier,

  • Sleutel - een unieke identificatie die wordt gebruikt om elk element (waarde) in een kaart te associëren
  • Waarde - elementen die zijn gekoppeld door sleutels in een kaart

Methoden van ConcurrentMap

De ConcurrentMapinterface bevat alle methoden van de Mapinterface. Het is omdat het Mapde superinterface van de ConcurrentMapinterface is.

Naast al deze methoden zijn hier de methoden die specifiek zijn voor de ConcurrentMapinterface.

  • putIfAbsent () - Voegt de opgegeven sleutel / waarde in op de kaart als de opgegeven sleutel nog niet aan een waarde is gekoppeld.
  • compute () - Berekent een item (sleutel / waarde-toewijzing) voor de opgegeven sleutel en de eerder toegewezen waarde.
  • computeIfAbsent () - Berekent een waarde met behulp van de opgegeven functie voor de opgegeven sleutel als de sleutel nog niet is toegewezen aan een waarde.
  • computeIfPresent () - Berekent een nieuw item (sleutel / waarde-toewijzing) voor de opgegeven sleutel als de sleutel al is toegewezen met de opgegeven waarde.
  • forEach () - Toegang tot alle items op een kaart en voer de opgegeven acties uit.
  • merge () - Voegt de nieuw opgegeven waarde samen met de oude waarde van de opgegeven sleutel als de sleutel al is toegewezen aan een bepaalde waarde. Als de sleutel nog niet is toegewezen, koppelt de methode eenvoudig de opgegeven waarde aan onze sleutel.

Ga voor meer informatie naar Java ConcurrentMap (officiële Java-documentatie).

Implementatie van 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); ) ) 

Uitvoer

 ConcurrentMap: (One = 1, Two = 2, Three = 3) Toegangswaarde: 1 Verwijderde Waarde: 2 

Voor meer informatie over ConcurrentHashMap, bezoek Java ConcurrentHashMap.

Interessante artikelen...