A Java HashMap compute () metódus új értéket számol és társítja a hashmap megadott kulcsával.
A compute()
módszer szintaxisa :
hashmap.compute(K key, BiFunction remappingFunction)
Itt a hashmap az HashMap
osztály objektuma .
compute () Paraméterek
A compute()
módszer 2 paramétert vesz fel:
- kulcs - kulcs, amelyhez a számított értéket társítani kell
- remappingFunction - függvény, amely kiszámítja a megadott kulcs új értékét
Megjegyzés : A remappingFunction két argumentumot tartalmazhat. Ezért tekinthető BiFunction
.
compute () Return Value
- a kulcshoz társított új értéket adja vissza
- visszatér,
null
ha a kulcshoz nincs társítva érték
Megjegyzés : Ha a remappingFunction eredményt ad null
, akkor a megadott kulcs hozzárendelése eltávolításra kerül.
Példa: A HashMap compute () új érték beszúrásához
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); ) )
Kimenet
HashMap: (nadrág = 150, táska = 300, cipő = 200) a cipők kedvezményes ára: 180 frissített HashMap: (nadrág = 150, táska = 300, cipő = 180
A fenti példában létrehoztunk egy hashmap nevű árakat. Figyelje meg a kifejezést,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Itt,
- (kulcs, érték) -> érték - érték * 10/100 - Ez egy lambda kifejezés. 10% -kal csökkenti a Cipő régi értékét és visszaadja. Ha többet szeretne megtudni a lambda kifejezésről, keresse fel a Java Lambda kifejezéseket.
- árak.compute () - A lambda kifejezéssel visszaadott új értéket társítja a Cipők leképezéséhez.
A lambda kifejezést újratervezési funkcióként használtuk, amely két paramétert gereblyézett.
Megjegyzés : A Java hivatalos dokumentációja szerint a HashMap merge () metódus egyszerűbb, mint a compute()
módszer.
Ajánlott olvasmány
- HashMap computeIfAbsent () - kiszámítja az értéket, ha a megadott kulcs nincs hozzárendelve egyetlen értékhez sem
- HashMap computeIfPresent () - kiszámítja az értéket, ha a megadott kulcs már hozzárendelve egy értékhez