Java ConcurrentMap-interface
Java ConcurrentMap-interface
In deze zelfstudie leren we over de Java ConcurrentMap-interface en zijn methoden.
De ConcurrentMap
interface van het Java-verzamelingsraamwerk biedt een thread-veilige kaart. Dat wil zeggen dat meerdere threads tegelijk toegang hebben tot de kaart zonder de consistentie van de items in een kaart te beïnvloeden.
ConcurrentMap
staat bekend als een gesynchroniseerde kaart.
Het breidt de kaartinterface uit.
Klasse die ConcurrentMap implementeert
Sinds ConcurrentMap
is een interface, we kunnen er geen objecten van maken.
Om de functionaliteiten van de ConcurrentMap
. te gebruiken interface, moeten we de klasse ConcurrentHashMap
. gebruiken die het implementeert.
Hoe ConcurrentMap gebruiken?
Om de ConcurrentMap
te gebruiken , moeten we de java.util.concurrent.ConcurrentMap
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een gelijktijdige kaart maken.
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> 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 geassocieerd met sleutels in een kaart
Methoden van ConcurrentMap
De ConcurrentMap
interface bevat alle methoden van de Map
koppel. Het is omdat Map
is de superinterface van de ConcurrentMap
interface.
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.
- berekenen() - Berekent een invoer (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 nieuwe invoer (sleutel/waarde-toewijzing) voor de opgegeven sleutel als de sleutel al is toegewezen aan de opgegeven waarde.
- forEach() - Krijg toegang tot alle items van een kaart en voer de gespecificeerde acties uit.
- samenvoegen() - Voegt de nieuwe 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<String, Integer> 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} Accessed Value: 1 Removed Value: 2
Voor meer informatie over ConcurrentHashMap
, bezoek Java ConcurrentHashMap.
Java