In deze zelfstudie leren we over de Java ConcurrentMap-interface en zijn methoden.
De ConcurrentMap
interface 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 ConcurrentMap
een interface is, kunnen we er geen objecten van maken.
Om de functionaliteiten van de ConcurrentMap
interface te gebruiken, moeten we de klasse gebruiken ConcurrentHashMap
die deze implementeert.
Hoe gebruik ik ConcurrentMap?
Om de te gebruiken ConcurrentMap
, moeten we eerst het java.util.concurrent.ConcurrentMap
pakket 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 ConcurrentMap
interface bevat alle methoden van de Map
interface. Het is omdat het Map
de superinterface van de ConcurrentMap
interface is.
Naast al deze methoden zijn hier de methoden die specifiek zijn voor de ConcurrentMap
interface.
- 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.