Διασύνδεση Java ConcurrentMap

Σε αυτό το σεμινάριο, θα μάθουμε για τη διεπαφή Java ConcurrentMap και τις μεθόδους της.

Η ConcurrentMapδιεπαφή του πλαισίου συλλογών Java παρέχει έναν χάρτη ασφαλούς νήματος. Δηλαδή, πολλά νήματα μπορούν να έχουν πρόσβαση στον χάρτη ταυτόχρονα χωρίς να επηρεάζουν τη συνέπεια των καταχωρήσεων σε έναν χάρτη.

ConcurrentMap είναι γνωστός ως συγχρονισμένος χάρτης.

Επεκτείνει τη διασύνδεση χάρτη.

Τάξη που εφαρμόζει το ConcurrentMap

Δεδομένου ότι ConcurrentMapείναι μια διεπαφή, δεν μπορούμε να δημιουργήσουμε αντικείμενα από αυτήν.

Για να χρησιμοποιήσουμε τις λειτουργίες της ConcurrentMapδιεπαφής, πρέπει να χρησιμοποιήσουμε την κλάση ConcurrentHashMapπου την εφαρμόζει.

Πώς να χρησιμοποιήσετε το ConcurrentMap;

Για να χρησιμοποιήσουμε το ConcurrentMap, πρέπει java.util.concurrent.ConcurrentMapπρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, δείτε πώς μπορούμε να δημιουργήσουμε έναν ταυτόχρονο χάρτη.

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

Στον παραπάνω κώδικα, δημιουργήσαμε έναν ταυτόχρονο χάρτη με όνομα.

Εδώ,

  • Κλειδί - ένα μοναδικό αναγνωριστικό που χρησιμοποιείται για τη συσχέτιση κάθε στοιχείου (τιμή) σε έναν χάρτη
  • Τιμή - στοιχεία που σχετίζονται με κλειδιά σε έναν χάρτη

Μέθοδοι ταυτόχρονης χαρτογράφησης

Η ConcurrentMapδιεπαφή περιλαμβάνει όλες τις μεθόδους της Mapδιεπαφής. Είναι επειδή Mapείναι το σούπερ περιβάλλον της ConcurrentMapδιεπαφής.

Εκτός από όλες αυτές τις μεθόδους, εδώ είναι οι συγκεκριμένες μέθοδοι για τη ConcurrentMapδιεπαφή.

  • putIfAbsent () - Εισάγει το καθορισμένο κλειδί / τιμή στο χάρτη εάν το καθορισμένο κλειδί δεν έχει ήδη συσχετιστεί με καμία τιμή.
  • compute () - Υπολογίζει μια καταχώριση (αντιστοίχιση κλειδιού / τιμής) για το καθορισμένο κλειδί και την τιμή που είχε αντιστοιχιστεί προηγουμένως
  • computeIfAbsent () - Υπολογίζει μια τιμή χρησιμοποιώντας την καθορισμένη συνάρτηση για το καθορισμένο κλειδί, εάν το κλειδί δεν έχει ήδη αντιστοιχιστεί με καμία τιμή.
  • computeIfPresent () - Υπολογίζει μια νέα καταχώριση (αντιστοίχιση κλειδιού / τιμής) για το καθορισμένο κλειδί εάν το κλειδί έχει ήδη αντιστοιχιστεί με την καθορισμένη τιμή.
  • forEach () - Πρόσβαση σε όλες τις καταχωρίσεις ενός χάρτη και εκτέλεση των καθορισμένων ενεργειών.
  • συγχώνευση () - Συγχωνεύει τη νέα καθορισμένη τιμή με την παλιά τιμή του καθορισμένου κλειδιού, εάν το κλειδί έχει ήδη αντιστοιχιστεί σε μια συγκεκριμένη τιμή. Εάν το κλειδί δεν έχει ήδη αντιστοιχιστεί, η μέθοδος απλώς συσχετίζει την καθορισμένη τιμή με το κλειδί μας.

Για να μάθετε περισσότερα, επισκεφθείτε το Java ConcurrentMap (επίσημη τεκμηρίωση Java).

Υλοποίηση του ConcurrentMap στο 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); ) ) 

Παραγωγή

 ConcurrentMap: (One = 1, Two = 2, Three = 3) Accessed Value: 1 Αφαιρούμενη τιμή: 2 

Για να μάθετε περισσότερα ConcurrentHashMap, επισκεφθείτε το Java ConcurrentHashMap.

ενδιαφέροντα άρθρα...