Метода Јава ХасхМап цомпуте () израчунава нову вредност и повезује је са наведеним кључем у хешмапи.
Синтакса compute()
методе је:
hashmap.compute(K key, BiFunction remappingFunction)
Овде је хасхмап објекат HashMap
класе.
цомпуте () Параметри
compute()
Метод узима 2 параметра:
- кеи - кључ са којим треба израчунати израчунату вредност
- ремаппингФунцтион - функција која израчунава нову вредност за наведени кључ
Напомена : Функција ремаппингФунцтион може имати два аргумента. Отуда се сматра као BiFunction
.
цомпуте () Повратна вредност
- враћа нову вредност повезану са кључем
- враћа
null
ако ниједна вредност није повезана са кључем
Напомена : Ако резултати ремаппингФунцтион резултирају null
, тада се мапирање за наведени кључ уклања.
Пример: ХасхМап цомпуте () за уметање нове вредности
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); ) )
Оутпут
ХасхМап: (Панталона = 150, Торба = 300, Ципеле = 200) Цена са попустом за ципеле: 180 Ажурирана ХасхМап: (Панталона = 150, Торба = 300, Ципеле = 180
У горњем примеру смо креирали хеш-мапу названу цене. Примети израз,
prices.compute("Shoes", (key, value) -> value - value * 10/100)
Ево,
- (кључ, вредност) -> вредност - вредност * 10/100 - То је ламбда израз. Смањује стару вредност Ципела за 10% и враћа је. Да бисте сазнали више о ламбда изразу, посетите Јава Ламбда Екпрессионс.
- прицес.цомпуте () - придружује нову вредност враћену ламбда изразом мапирању за Ципеле.
Користили смо ламбда израз као функцију поновног мапирања која има два параметра.
Напомена : Према службеној документацији Јаве, метода ХасхМап мерге () је једноставнија од compute()
методе.
Препоручено читање
- ХасхМап цомпутеИфАбсент () - израчунава вредност ако наведени кључ није пресликан у било коју вредност
- ХасхМап цомпутеИфПресент () - израчунава вредност ако је наведени кључ већ мапиран у вредност