Metoda Java HashMap compute () izračunava novu vrijednost i povezuje je s navedenim ključem u hashmapi.
Sintaksa compute()
metode je:
hashmap.compute(K key, BiFunction remappingFunction)
Ovdje je hashmap objekt HashMap
klase.
compute () Parametri
compute()
Postupak traje 2 parametara:
- key - ključ s kojim treba izračunati izračunatu vrijednost
- remappingFunction - funkcija koja izračunava novu vrijednost za navedeni ključ
Napomena : Funkcija remappingFunction može imati dva argumenta. Stoga se smatra kao BiFunction
.
compute () Povratna vrijednost
- vraća novu vrijednost povezanu s ključem
- vraća
null
ako nijedna vrijednost nije pridružena ključu
Napomena : Ako rezultati remappingFunction rezultiraju null
, tada se mapiranje za navedeni ključ uklanja.
Primjer: Izračun HashMap () za umetanje nove vrijednosti
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); ) )
Izlaz
HashMap: (Pant = 150, torba = 300, cipele = 200) Cijena s popustom za cipele: 180 Ažurirano HashMap: (Pant = 150, torba = 300, cipele = 180
U gornjem primjeru stvorili smo hashmapu s nazivom cijene. Primijetite izraz,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Ovdje,
- (ključ, vrijednost) -> vrijednost - vrijednost * 10/100 - To je lambda izraz. Smanjuje staru vrijednost Cipela za 10% i vraća je. Da biste saznali više o lambda izrazu, posjetite Java Lambda Expressions.
- prices.compute () - pridružuje novu vrijednost vraćenu lambda izrazom mapiranju za Cipele.
Koristili smo lambda izraz kao funkciju remapiranja koja postiže dva parametra.
Napomena : Prema službenoj dokumentaciji Jave, metoda HashMap merge () jednostavnija je od compute()
metode.
Preporučena literatura
- HashMap computeIfAbsent () - izračunava vrijednost ako navedeni ključ nije preslikan u bilo koju vrijednost
- HashMap computeIfPresent () - izračunava vrijednost ako je navedeni ključ već mapiran u vrijednost