Η μέθοδος 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 () - υπολογίζει την τιμή εάν το καθορισμένο κλειδί έχει ήδη αντιστοιχιστεί σε μια τιμή