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