Υπολογισμός Java HashMap ()

Η μέθοδος Java HashMap compute () υπολογίζει μια νέα τιμή και τη συσχετίζει με το καθορισμένο κλειδί στο hashmap.

Η σύνταξη της compute()μεθόδου είναι:

 hashmap.compute(K key, BiFunction remappingFunction)

Εδώ, το hashmap είναι ένα αντικείμενο της HashMapτάξης.

υπολογισμός () Παράμετροι

Η compute()μέθοδος παίρνει 2 παραμέτρους:

  • key - key με το οποίο θα υπολογιστεί η υπολογισμένη τιμή
  • remappingFunction - λειτουργία που υπολογίζει τη νέα τιμή για το καθορισμένο κλειδί

Σημείωση : Το remappingFunction μπορεί να λάβει δύο ορίσματα. Ως εκ τούτου, θεωρείται ως BiFunction.

υπολογισμός () Επιστροφή τιμής

  • επιστρέφει τη νέα τιμή που σχετίζεται με το κλειδί
  • επιστρέφει nullεάν καμία τιμή δεν σχετίζεται με το κλειδί

Σημείωση : Εάν τα αποτελέσματα του remappingFunction καταργηθούν null, τότε η αντιστοίχιση για το καθορισμένο κλειδί καταργείται.

Παράδειγμα: HashMap compute () για εισαγωγή νέας τιμής

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // recompute the value of Shoes with 10% discount int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("Discounted Price of Shoes: " + newPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

Παραγωγή

 HashMap: (Παντελόνι = 150, Τσάντα = 300, Παπούτσια = 200) Έκπτωση στην τιμή των παπουτσιών: 180 Ενημερωμένο HashMap: (Παντελόνι = 150, Τσάντα = 300, Παπούτσια = 180

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

 prices.compute("Shoes", (key, value) -> value - value * 10/100)

Εδώ,

  • (κλειδί, τιμή) -> τιμή - τιμή * 10/100 - Είναι μια έκφραση λάμδα. Μειώνει την παλιά αξία των παπουτσιών κατά 10% και την επιστρέφει. Για να μάθετε περισσότερα σχετικά με την έκφραση lambda, επισκεφθείτε το Java Lambda Expressions.
  • Rates.compute () - Συσχετίζει τη νέα τιμή που επέστρεψε η έκφραση lambda στη χαρτογράφηση για παπούτσια

Έχουμε χρησιμοποιήσει την έκφραση λάμδα ως λειτουργία αναδιατύπωσης που κατατάσσει δύο παραμέτρους.

Σημείωση : Σύμφωνα με την επίσημη τεκμηρίωση της Java, η μέθοδος συγχώνευσης HashMap () είναι απλούστερη από τη compute()μέθοδο.

Συνιστώμενη ανάγνωση

  • HashMap computeIfAbsent () - υπολογίζει την τιμή εάν το καθορισμένο κλειδί δεν αντιστοιχιστεί σε καμία τιμή
  • HashMap computeIfPresent () - υπολογίζει την τιμή εάν το καθορισμένο κλειδί έχει ήδη αντιστοιχιστεί σε μια τιμή

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