Јава ХасхМап цомпутеИфПресент ()

Метода Јава ХасхМап цомпутеИфПресент () израчунава нову вредност и повезује је са наведеним кључем ако је кључ већ присутан у хасхмапи.

Синтакса 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()

Занимљиви Чланци...