Java HashMap komputasi ()

Metode Java HashMap compute () menghitung nilai baru dan mengaitkannya dengan kunci yang ditentukan dalam hashmap.

Sintaks dari compute()metode ini adalah:

 hashmap.compute(K key, BiFunction remappingFunction)

Di sini, hashmap adalah objek HashMapkelas.

compute () Parameter

The compute()Metode mengambil 2 parameter:

  • key - key yang akan dikaitkan dengan nilai yang dihitung
  • remappingFunction - fungsi yang menghitung nilai baru untuk kunci yang ditentukan

Catatan : Fungsi remapping dapat mengambil dua argumen. Oleh karena itu, dianggap sebagai BiFunction.

compute () Nilai Kembali

  • mengembalikan nilai baru yang terkait dengan kunci
  • kembali nulljika tidak ada nilai yang terkait dengan kunci

Catatan : Jika remappingFunction menghasilkan null, maka pemetaan untuk kunci yang ditentukan akan dihapus.

Contoh: HashMap compute () untuk Memasukkan Nilai Baru

 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); ) )

Keluaran

 HashMap: (Celana = 150, Tas = 300, Sepatu = 200) Harga Diskon Sepatu: 180 Pembaruan HashMap: (Celana = 150, Tas = 300, Sepatu = 180

Dalam contoh di atas, kami telah membuat hashmap bernama harga. Perhatikan ekspresinya,

 prices.compute("Shoes", (key, value) -> value - value * 10/100)

Sini,

  • (key, value) -> value - value * 10/100 - Ini adalah ekspresi lambda. Ini mengurangi nilai lama Sepatu sebesar 10% dan mengembalikannya. Untuk mempelajari lebih lanjut tentang ekspresi lambda, kunjungi Java Lambda Expressions.
  • prices.compute () - Mengaitkan nilai baru yang dikembalikan oleh ekspresi lambda ke pemetaan untuk Shoes.

Kami telah menggunakan ekspresi lambda sebagai fungsi pemetaan ulang yang mengambil dua parameter.

Catatan : Menurut dokumentasi resmi Java, metode HashMap merge () lebih sederhana daripada compute()metode.

Bacaan yang Direkomendasikan

  • HashMap computeIfAbsent () - menghitung nilai jika kunci yang ditentukan tidak dipetakan ke nilai apa pun
  • HashMap computeIfPresent () - menghitung nilai jika kunci yang ditentukan sudah dipetakan ke suatu nilai

Artikel yang menarik...