Metode Java HashMap computeIfAbsent () menghitung nilai baru dan mengaitkannya dengan kunci yang ditentukan jika kunci tidak terkait dengan nilai apa pun dalam hashmap.
Sintaks dari computeIfAbsent()
metode ini adalah:
hashmap.computeIfAbsent(K key, Function remappingFunction)
Di sini, hashmap adalah objek HashMap
kelas.
computeIfAbsent () Parameter
The computeIfAbsent()
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 pemetaan ulang tidak dapat mengambil dua argumen.
computeIfAbsent () Nilai Kembali
- mengembalikan nilai baru atau lama yang terkait dengan kunci yang ditentukan
- kembali
null
jika tidak ada nilai yang terkait dengan kunci
Catatan : Jika remappingFunction menghasilkan null
, maka pemetaan untuk kunci yang ditentukan akan dihapus.
Contoh 1: Java HashMap computeIfAbsent ()
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); // compute the value of Shirt int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280); System.out.println("Price of Shirt: " + shirtPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Keluaran
HashMap: (Pant = 150, Bag = 300, Shoes = 200) Harga Kaos: 280 Update HashMap: (Pant = 150, Shirt = 280, Bag = 300, Shoes = 200)
Dalam contoh di atas, kami telah membuat hashmap bernama harga. Perhatikan ekspresinya,
prices.computeIfAbsent("Shirt", key -> 280)
Sini,
- key -> 280 adalah ekspresi lambda. Ini mengembalikan nilai 280. Untuk mempelajari lebih lanjut tentang ekspresi lambda, kunjungi Java Lambda Expressions.
- prices.computeIfAbsent () mengaitkan nilai baru yang dikembalikan oleh ekspresi lambda ke pemetaan untuk Shirt. Ini hanya mungkin karena Shirt belum dipetakan ke nilai apa pun di hashmap.
Contoh 2: computeIfAbsent () jika kuncinya sudah ada
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", 180); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // mapping for Shoes is already present // new value for Shoes is not computed int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280); System.out.println("Price of Shoes: " + shoePrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Keluaran
HashMap: (Pant = 150, Bag = 300, Shoes = 180) Harga Sepatu: 180 Update HashMap: (Pant = 150, Bag = 300, Shoes = 180)
Pada contoh di atas, pemetaan untuk Shoes sudah ada di hashmap. Karenanya, computeIfAbsent()
metode tersebut tidak menghitung nilai baru untuk Shoes.
Bacaan yang Direkomendasikan
- HashMap compute () - menghitung nilai untuk kunci yang ditentukan
- HashMap computeIfPresent () - menghitung nilai jika kunci yang ditentukan sudah dipetakan ke suatu nilai
- Java HashMap merge () - melakukan tugas yang sama seperti
compute()