Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

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

  1. C#-interface
  2. Java-operators
  3. Java super
  4. Java-interface
  5. Java proberen-met-bronnen
  6. Java NavigableSet-interface
  7. Java Lambda-expressies
  8. Interface versus abstracte klasse in Java:wat is het verschil?
  9. Java - Interfaces
  10. Java 9 - Privé-interfacemethoden
  11. Java 8 - Optionele klasse